如何开启MySQL慢查询日志
2018-06-26 本文已影响214人
阿里云云栖号
前言
数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。默认情况下,MySQL不启动慢查询日志。本文简单介绍如何开启慢查询日志,如何用mysqldumpslow分析慢查询。
开启慢查询日志
修改my.cnf
在配置文件my.cnf(一般为/etc/my.cnf)中的[mysqld] section增加如下参数。
其中,
重启MySQL服务
重启MySQL后会看到/var/lib/mysql/slow-query.log文件。
检查参数
通过如下命令可以检查上述参数配置情况。
测试
慢查询
制造慢查询并执行。如下。
慢查询日志
打开慢查询日志文件。可以看到上述慢查询的SQL语句被记录到日志中。
慢查询分析工具
mysqldumpslow
mysqldumpslow是MySQL自带的分析慢查询的工具。该工具是Perl脚本。
常用参数如下。
例子
我们执行了多次类似如下的查询。
获取访问次数最多的5个SQL语句
按照时间排的top 5个SQL语句
按照时间排序且含有'like'的top 5个SQL语句
小结
默认情况下,MySQL不启动慢查询日志。若要检查慢查询,需要我们手动设置这个参数。一般情况下,若非调优需要,不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
文章作者:zuozhao
本文为云栖社区原创内容,未经允许不得转载。