如何调优慢查询SQL
...大约 1 分钟
如何调优慢查询SQL
1. 简介
我们在写程序的时候如何定位并优化慢查询呢?具体场景具体分析,大体思路如下
- 根据慢日志定位慢查询sql
- 使用explain等工具分析sql
- 修改sql或者尽量让sql走索引
2. 根据慢日志定位慢查询sql
查看慢日志配置情况
show VARIABLES like '%query%'
结果如下
- Long_query_time: 默认是10s就算是慢日志了
- Show_query_log: 慢日志的开启状态
- show_query_log_file: 慢日志所在的地址
慢日志的数量
show status like '%slow_queries%'
结果如下
慢日志打开
- 方式一:会话中更改(重启后会恢复默认)
#慢日志打开 set global slow_query_log = on #慢查询的时间设置成1s set global long_query_time =1;
结果如下
方式二:修改配置文件(重启后配置还在)
修改配置文件my.cnf,在[mysqld]下的下方加入
[mysqld] slow_query_log = ON long_query_time = 1
重启MySQL服务
service mysqld restart
查看设置后的参数
show VARIABLES like '%query%'
查看慢日志
vim /var/lib/mysql/iZwz914d1peizv4h7laju4Z-slow.log
3. 使用explain等工具分析sql
在查询语句前面加上explain
其中两个字段非常重要
type:
extra:
4. 修改sql或者尽量让sql走索引
4.1 方案一:查询其他有索引的字段
4.2 方案二:添加索引
赞助