一、开启慢查询日志功能
查看是否开启
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
之后使用service mysqld restart
命令重启服务即可。
修改查询时间
SHOW VARIABLES LIKE 'long_query_time%';
默认的时间为10秒,将其修改为1秒
set global long_query_time=1
关闭当前回话,重新连接mysql服务,再查看
测试慢查询
使用select sleep(2);
阻塞回话来模拟慢查询
根据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