mysql慢日志查询
使用 set global slow_query_log=1 开启了慢查询日志只对当前数据库生效
如果Mysql重启后则会失效
一:查看是否开启
show variables like '%slow_query_log%'
上图显示, slow_query_log 为 OFF 则未开启, ON为开启
二:开启慢日志查询
set global slow_query_log=1
开启成功,再次使用 show variables like '%slow_query_log%' 来查看慢查询日志是否开启
开启成功
三:什么样的sql才会记录到慢查询当中呢?也是就是如下图所示文件中
超过一定时间的为慢查询,Mysql默认情况下为10秒,这个10秒是由一个参数来确定的 long_query_time
通过mysql命令:
show variables like 'long_query_time%'
可将long_query_time值查出来
可以使用命令修改, 也可以在my.cnf参数里面修改
假如运行时间正好等于long_query_time的情况,并不会被记录下来。也就是说,
在mysql源码里是判断大于long_query_time, 而非大于等于
四:设置慢的阙(que)值时间,使用如下语句, 如下设置了3秒
set global long_query_time = 3
如上图所示,为何设置成功之后再次使用 show variables like 'long_query_time%' 查询为10呢,
因为需要重新连接或再开一次会话,如果在命令行就另起一个cmd窗口连接登录再次查询,
我用Navicat我新建一个查询窗口,执行 show variables like 'long_query_time%' 结果显示如下