0%

慢查询日志

慢查询日志

MySQL的慢查询日志是用来记录MySQL响应时间超过阈值的语句,即为超过long_query_time值得sql语句

默认没有开启慢查询(如果开启慢查询会导致性能降低)

查看是否开启慢查询

1
show variables like '%slow_query_log%';

开启慢查询

1
2
#只对当前数据库生效,如果重启则失效
set global slow_query_log = 1;

如果需要永久生效,在需要在my.cnf配置文件中配置

在[mysqld]下添加slow_query_log和slow_query_log_file参数,然后重启服务器即可

查询慢查询阈值

1
show variables like '%long_query_time%';

查看有多少条慢查询

1
show global status  like '%Slow_queries%';

日志分析工具

可以使用mysqldumpslow来进行日志分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysqldumpslow [ OPTS... ] [ LOGS... ] 

-----------------------------
参数
-s 按照何种方式排序
c 访问次数
l 锁定时间
r 返回记录
t 查询时间
al 平均锁定时间
ar 平均返回记录数
at 平均查询时间
-t 返回前面多少条的数据
-g 正则