mysql高级 慢查询日志

是什么?

  • MYSQL的慢查询日志是MYSQL提供的一种日志记录,它用来记录在MYSQL中运行时间超过long_query_time的SQL,则会被记录到慢查询日志中
  • 具体指运行时间超过long_query_time的SQL,则会被记录到慢查询日志中,意识是运行10秒以上的语句
  • 由它来查看哪些SQL超出了我们的最大忍耐时间值,比如一条sql语句执行超过5秒,我们就算慢sql,希望能收集超过5秒的sql,结合之前的explain进行全面分析

说明:

  • 默认情况下,MYSQL数据库没有开启慢查询日志,需要手动来设置这个参数。
  • 当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询会或多或少带来一定性能的影响。慢查询日志支持将日志记录写入文件

查看是否开启及如何开启
查看:show variables like ‘slow_query%’;
在这里插入图片描述
查看阙值:show variables like ‘long_query_time%’;
在这里插入图片描述
开启:set global slow_query_log=‘1’;
****说明:使用set global slow_query_log=‘1’;开启慢查询日志支队当前数据库有效,如果mysql重启后则会失效。

*****如果要永久有效,就必须修改配合文件my.cnf(其他系统变量也是如此)
修改my.cnf文件,[mysqlId]下增加或者修改slow_query_log 和slow_query_log_file后,重启,MYSQL服务器,即将如下两行配置
在这里插入图片描述

开启慢查询日志后,什么样的sql才会被放入慢查询日志中呢?
这个是由参数long_query_time控制,默认情况下long_query_time的值为10秒

命令:show variables like ‘long_query_time%’;
在这里插入图片描述
可以使用命令修改,也可以在my.cnf参数里修改
****假如运行时间正好等于long_query_time的情况,并不会被记录下来,也就是说,在mysql源码里是判断大于long_query_time,而非大于等于。
****命令:set global long_query_time=3;

为什么设置后看不到效果:
需要重新连接或新开一个会话才能看到修改值:
命令:show global variables like ‘long_query_time’

									***帅气的远远啊***
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值