【MySQL】慢查询日志
MySQL提供的一种日志记录,用来记录mysql中相应时间超过阀值的语句,具体指运行时间超过
long_query_time值的sql,则会被记录到慢日志中。long_query_time默认为10s。默认mysql没有开启慢查询,需要手
动来设置开启,如果不是调优需要,不建议开启。
一、查看状态
mysql> show variables like'%slow_query_log%';
开启:mysql> set global slow_query_log=1;
如果要永久生效,需要修改my.cnf,
[mysqld]
#添加一下参数
slow_query_log=1
slow_query_log_file=/var/lib/mysql/localhost-slow.log
二、查看阈值
满足什么条件的sql才能收集到日志中呢?
mysql> show variables like'long_query_time%';
参数设置可以在my.cnf中修改
注意:在mysql源码中,判断条件是long_query_time>10
超过10秒的才被记录
使用命令设置:
mysql> set global long_query_time=3;
为什么看不到修改的值呢?
1-需要重新连接,才行
2-使用show globalvariables like 'long_query_time';
现在执行一条sql
三、查看记录数
查询慢日志中收集的sql记录条数,也可以以此来衡量系统性能
mysql> show global status like'%Slow_queries%';