本章主要写当慢查询文件很大的时候怎样在线生成一个新的慢查询文件。
测试环境:mysql 5.6.21
默认的my.cnf文件在/etc/目录下
vim /etc/my.cnf
#slow_query slow_query_log=1#开启慢查询 slow_query_log_file=/var/lib/mysql/mysql-slow.log #设置慢查询路径 long_query_time=0.01#设置慢查询时间
配置完要重启mysql服务才生效
use information_schema; select * from tables;
语句执行时间花了:1.1秒,返回了314行记录;
查看慢查询文件:cat mysql-slow.log
慢查询日志文件中记录了每一天慢查询记录,每一条记录都是以Time:开头;记录了包含登入信息,查询所花的时间,锁花的时间,返回的行数,扫描的记录数,执行的语句。
SET global slow_query_log=0
查询是否关闭全局慢查询
SHOW VARIABLES LIKE '%query_log%';
设置一个新的慢查询文件
SET global slow_query_log_file='/var/lib/mysql/mysql-slow_new.log'
开启慢查询
SET global slow_query_log=1;
SHOW VARIABLES LIKE '%query_log%';
在慢查询路径中可以看到生成了一个新的慢查询文件。
后面的慢查询信息会记录到新的日志文件当中,
这时我们可以mv以前的慢查询文件进行归档了。
SHOW VARIABLES LIKE '%query_log%';
当重启mysql服务之后,慢日志文件会重新变成之前的在my.cnf里面设置的文件,所以如果你想要重启服务之后慢日志文件还是刚才设置的mysql-slow_new.log的话你就需要在修改全局设置的同时再修改my.cnf文件,这样就能保证重启之后文件还是之前修改的文件。
配置慢查询对平时收集性能差的语句很有帮助,也有很多工具专门来分析慢查询日志的,其中percona-toolkit就是一个很不错的分析慢查询的工具,如果没有使用可以去了解一下。
备注:
作者: pursuer.chen
博客: http://www.cnblogs.com/chenmh
本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。
《欢迎交流讨论》