mysql慢日志查询

使用 set global slow_query_log=1 开启了慢查询日志只对当前数据库生效

如果Mysql重启后则会失效

 

一:查看是否开启

show variables like '%slow_query_log%'

mysql慢日志查询

上图显示, slow_query_log 为 OFF  则未开启, ON为开启

二:开启慢日志查询

set global slow_query_log=1

mysql慢日志查询

开启成功,再次使用  show variables like '%slow_query_log%'  来查看慢查询日志是否开启

mysql慢日志查询

开启成功

三:什么样的sql才会记录到慢查询当中呢?也是就是如下图所示文件中

mysql慢日志查询

超过一定时间的为慢查询,Mysql默认情况下为10秒,这个10秒是由一个参数来确定的 long_query_time

通过mysql命令:

show variables like 'long_query_time%'

可将long_query_time值查出来

mysql慢日志查询

可以使用命令修改, 也可以在my.cnf参数里面修改

假如运行时间正好等于long_query_time的情况,并不会被记录下来。也就是说,

在mysql源码里是判断大于long_query_time, 而非大于等于

四:设置慢的阙(que)值时间,使用如下语句, 如下设置了3秒

set global long_query_time = 3

mysql慢日志查询

如上图所示,为何设置成功之后再次使用 show variables like 'long_query_time%' 查询为10呢,

因为需要重新连接或再开一次会话,如果在命令行就另起一个cmd窗口连接登录再次查询,

我用Navicat我新建一个查询窗口,执行  show variables like 'long_query_time%'   结果显示如下

mysql慢日志查询