1:简述项目中优化SQL语句执行效率的方法,从哪些方面,sql语句性能如何分析
- 分析查询速度慢的原因
- 优化查询工程中的数据访问
- 优化长难的查询语句
- 优化特定类型查询语句
2:优化速度慢
- 避免访问太多数据
- 检查是否在检索大量的超过需要的数据
- 确认MySQL服务器是否在分析大量不必要的数据行
避免:
查询不需要的数据,使用limit
多表关联,指定字段
避免select *
重复的查相同的数据,可以缓存- explain进行分析,添加索引
- 修改数据表的结构,修改数据表范式
- 重写SQL语句
3:优化长难(mysql扫描的很快,只是响应数据就很慢了)
- 切分查询
复杂查询可以在特殊的情况分解成多个简单查询
- 分解关联查询
关联分解成多条SQL来执行
提高缓存
执行单个查询可以减少所得竞争
4:优化特定类型
count(*)会忽略所有的列,直接统计所有列数,因此不要使用count(列名)
增加汇总表
使用缓存关联查询
给on或字句的列上加索引
确保group by 和order by 中只有一个列这样mysql才有可能使用索引
少使用子查询优化limit分页
limit偏移量大的时候,查询效率较低
可以记录上次查询的最大ID,下次查询时直接根据该ID来查询
加个条件where id > 上次查询的最大ID