MySQL慢查询日志的使用

MySQL数据库的慢查询日志是默认关闭的我们可以通过

show variables like ‘%slow_query_log%’;来查询日志是否开启

如何开启慢日志?

​ set global slow_query_log = 1;

如何关闭慢日志?

​ set global slow_query_log = 0;

tips:这里的开启与关闭只针对当前数据库,如果我们换另一个数据库的话默认还是关闭;

如何才能永久开启慢日志?

​ 需要配置my.cnf文件,在my.cnf文件下添加slow_query_log = 1和slow_query_log_file=你的慢日志文件的绝对路径

什么样的查询语句才会被记录?

​ 默认是查询时间大于(不等于)10s的查询语句才会被记录

如何查看默认时间?

​ show variables like ‘long_query_time%’;

如何更改默认时间?

​ set global long_query_time = 3;

在我们执行完这条语句的时候最好重新登录MySQL

​ 执行成功,但是再次查询的结果还是10s,想要看到更改的结果可以使用

  1. show global variables like ‘long_query_time%’;比原先的语句多了一个global;
  2. 也可以重新登录MySQL 再使用show variables like ‘long_query_time%’;
  3. 必须重新登录MySQL这个指令才会被实际的设置否则当我们输入select sleep(4);的时候无法记录

如何查询我们这个日志里有多少条记录呢?

  • show global status like ‘%Slow_queries%’;

日志分析工具mysqldumpslow

  • s:表示按照何种方式排序
  • c:访问次数
  • l:锁定时间
  • r:返回记录
  • t:查询时间
  • al:平均锁定时间
  • ar:平均返回记录数
  • at:平均查询时间
  • t:返回前面多少条的数据
  • g:后面跟正则表达式

常用组合

  1. 得到返回记录集最多的10个SQL
    • mysqldumpslow -s -r -t 10 日志文件地址
  2. 得到访问次数最多的10个SQL
    • mysqldumpslow -s -c -t 10 日志文件地址
  3. 得到按照时间排序的前10条里含有左连接的查询语句
    • mysqldumpslow -s -t -t 10 “left join” 日志文件地址

建议在使用mysqldumpslow命令的时候配合| 和more使用防止信息过多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值