当感到sql查询过慢的时候,我们一般有两种查看方法
- explain 执行计划,可以查看单条sql语句的具体执行过程
- 开启mysql的慢查询日志功能
下面,主要阐述的就是mysql的慢查询启用和分析方法
(mysql version is 5.6)
开启慢查询
开启慢查询分为两种方法
查询状态 show variables like '%slow_query_log%;
- 临时启用,直接使用sql 配置
set global slow_query_log=1;
slow_query_log_file
是默认的慢查询存储的位置,可以更改
- 用就启用,在
my.cnf
文件中配置,有则改,无则添加配置项
slow_query_log =1
slow_query_log_file=/var/log/mysql/mysql_slow_query.log
怎么筛选较慢的sql语句呢
mysql 有个配置项叫
long_query_time
可以精确到微秒,通过设置其值,我们可以定义超过多长时间为慢,默认为10s
.
可以使用show variables like '%long_query_time%;
来查看其值
设置 long_query_time
的值
set global long_query_time=4;
使用show global variables like 'long_query_time'
来查看设置之后的状态
接下来就可以使用了
使用之前,先重新链接一次
使用select sleep(5);
测试
查看日志
- 可以直接查看日志文件
sudo less /var/lib/mysql/winlans-PC-slow.log
- 使用mysql慢日志分析工具
sudo mysqldumpslow
,输出如图
好像差不多了,如果有什么不足,后续慢慢补吧