SQL的慢查询日志使用详解

一、开启慢查询日志功能

查看是否开启

SHOW VARIABLES LIKE '%slow_query_log%';

开启命令

set global slow_query_log=1

这种开启的方式只对当前数据库有效,如果mysql服务重启,则还是会失效。

如何保证永久有效?

需要在mysql的安装目录下找到mysql的配置文件,添加一下配置

slow_query_log =1
slow_query_log_file=/var/lib/mysql/sql-slow.log

SQL的慢查询日志使用详解_第1张图片
之后使用service mysqld restart命令重启服务即可。

修改查询时间

SHOW VARIABLES LIKE 'long_query_time%';

在这里插入图片描述
默认的时间为10秒,将其修改为1秒

set global long_query_time=1

关闭当前回话,重新连接mysql服务,再查看
SQL的慢查询日志使用详解_第2张图片
测试慢查询

使用select sleep(2);阻塞回话来模拟慢查询
SQL的慢查询日志使用详解_第3张图片
根据SHOW VARIABLES LIKE '%slow_query_log%;命令找日志的磁盘位置,查看日志,发现这条sql已经被记录了,包括执行的用户和主机。
在这里插入图片描述
查看当前服务有多少条慢sql记录

show global status like '%Slow_queries%';

二、慢查询日志其他命令的使用

得到返回记录集最多的5个SQL

mysqldumpslow -s r -t 5 /var/lib/mysql/sql-slow.log

得到按照时间排序的前5条里面含有左连接的查询语句

mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/sql-slow.log

你可能感兴趣的:(数据库)