为了账号安全,请及时绑定邮箱和手机立即绑定

如何开启MySQL慢查询日志

标签:
MySQL

前言

数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。默认情况下,MySQL不启动慢查询日志。本文简单介绍如何开启慢查询日志,如何用mysqldumpslow分析慢查询。

开启慢查询日志

修改my.cnf

在配置文件my.cnf(一般为/etc/my.cnf)中的[mysqld] section增加如下参数。

webp

其中,

slow_query_log = 1

        表示开启慢查询,0表示关闭

slow_query_log_file

        指定慢查询日志路径

        需要MySQL对该路径有写权限

long_query_time = 1

       表示查询时间>=1秒才记录日志

       默认10s

log_queries_not_using_indexes = 1

       表明记录没有使用索引的 SQL 语句

重启MySQL服务

webp

重启MySQL后会看到/var/lib/mysql/slow-query.log文件。

检查参数

通过如下命令可以检查上述参数配置情况。

webp

测试

慢查询

制造慢查询并执行。如下。

webp

慢查询日志

打开慢查询日志文件。可以看到上述慢查询的SQL语句被记录到日志中。

webp

慢查询分析工具

mysqldumpslow

mysqldumpslow是MySQL自带的分析慢查询的工具。该工具是Perl脚本。

常用参数如下。

webp

例子

1、我们执行了多次类似如下的查询。

2、获取访问次数最多的5个SQL语句

webp

3、按照时间排的top 5个SQL语句

webp

4、按照时间排序且含有'like'的top 5个SQL语句

webp

小结

默认情况下,MySQL不启动慢查询日志。若要检查慢查询,需要我们手动设置这个参数。一般情况下,若非调优需要,不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。



作者:阿里云云栖社区
链接:https://www.jianshu.com/p/c7b1862c28e4


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消