MySQL慢查询日志的设置与分析


慢查询日志用于记录一些过慢的查询语句,可以帮助管理员分析问题所在,该日志默认是没有开启的,需要在配置文件里添加一系列参数来手动启动

编辑my.cnf文件,在[mysqld]模块下增加以下内容:

[mysqld]

slow_query_log = on #开启慢查询日志

slow_query_log_file = filename #指定日志文件保存路径,不指定的话默认在数据库文件目录下,名为hostname-slow.log

long_query_time = 2 #指定达到多少秒才算慢查询

long-queries-not-using-indexes #记录没有使用索引的查询语句

min_examined_row_limit = 1000 #记录查找了多达1000次而引起的慢查询

log-slow-admin-statements #记录ALTER TABLE等语句引发的慢查询

log-slow-slave-statements #记录从服务器产生的慢查询

重启MySQL服务使配置生效

service mysqld restart

登陆数据库查询下环境

show variables like '%slow%';

执行一个慢查询语句

select sleep(3);

查看慢查询日志已经生成,箭头处显示了执行用户以及查询语句

在有大量慢查询内容的日志文件中用文本查看的话会很麻烦,建议使用一些慢查询分析工具,如官方自带的mysqldumpslow,使用后显示如下:

另外还有第三方的percona-toolkit中的pt-query-digest或mysqlsla,安装好了后都直接跟上慢日志文件即可分析,这里就不再描述。

本文永久更新链接地址

相关内容