【MySQL】慢查询日志

            MySQL提供的一种日志记录,用来记录mysql中相应时间超过阀值的语句,具体指运行时间超过

long_query_time值的sql,则会被记录到慢日志中。long_query_time默认为10s默认mysql没有开启慢查询,需要手

动来设置开启,如果不是调优需要,不建议开启。


一、查看状态

mysql> show variables like'%slow_query_log%';

【MySQL】慢查询日志

开启:mysql> set global slow_query_log=1;

【MySQL】慢查询日志

如果要永久生效,需要修改my.cnf,

[mysqld]

#添加一下参数

slow_query_log=1

slow_query_log_file=/var/lib/mysql/localhost-slow.log

【MySQL】慢查询日志
二、查看阈值

满足什么条件的sql才能收集到日志中呢?

mysql> show variables like'long_query_time%';

【MySQL】慢查询日志

参数设置可以在my.cnf中修改

注意:在mysql源码中,判断条件是long_query_time>10

超过10秒的才被记录

使用命令设置:

mysql> set global long_query_time=3;

【MySQL】慢查询日志

为什么看不到修改的值呢?

1-需要重新连接,才行

2-使用show globalvariables like 'long_query_time';

【MySQL】慢查询日志
现在执行一条sql
【MySQL】慢查询日志
【MySQL】慢查询日志
三、查看记录数

查询慢日志中收集的sql记录条数,也可以以此来衡量系统性能

mysql> show global status like'%Slow_queries%';

【MySQL】慢查询日志