进行SQL优化的第一步,是先查找哪些查询sql执行效率低。
慢sql日志功能:
-在mysql会有一个日志文件用于记录执行时间超过指定时间的sql,这个日志文件就叫做慢sql日志。
- 该功能在mysql中默认不开启,若想使用该功能,需要开启
操作慢sql日志的sql:
1. 查看慢sql日志是否打开:show variables like 'slow_query_log';
2. 开启慢sql日志功能:set global slow_query_log=1
执行时间超过10s时,默认视为慢sql,会将该sql记录到日志文件中。
3. 查询慢sql日志设置的时间:show global variables like 'long_query_time'
4. 如果需要,可以修改设置时间(阈值时间): set global long_query_time=2
5. 查看日志文件: show variables like 'slow_query_log_file'
注意点:对慢sql日志功能设置完成,需要重启数据库服务器,才能生效
慢sql日志文件在数据库安装路径中的data目录下(前提:打开慢sql日志功能)
确定慢sql是哪些后,如何对sql进行优化
1. 看慢sql是否使用了*,若是,则改为具体的字段
2. 看慢sql是否使用了嵌套查询,此时是否可以将嵌套查询转换为联查,若可以,则使用联查,因为联查的效率高于嵌套的.
3. 检查查询条件部分的字段是否需要使用索引,若需要,确定查询条件字段是否使用了索引,若没有,则添加索引
4. 检查查询条件部分的字段是否添加了索引,若添加了索引,检查此时对字段进行条件查询的操作是否导致索引失效