Mysql开启慢日志

慢日志作用

MySQL可以通过开启配置记录下查询超过指定时间的语句。借助慢日志,可以更好地分析性能的瓶颈,进而优化数据库系统的性能。

参数说明

默认情况下,mysql是不开启慢日志的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name | Value |
+---------------------------+----------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /mysql/data/localhost-slow.log |
+---------------------------+----------------------------------+

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
  • slow_query_log: 慢查询开启状态
  • slow_query_log_file: 慢查询日志存放的位置
  • long_query_time: 查询超过多少秒才记录,默认10s

参数详情见:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_long_query_time

设置步骤

用set参数设置重启后失效。一般使用启动配置文件设置以下参数

1
2
3
4
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/slow.log
long_query_time = 1

如果服务已经运行中,重启一下即可

测试

执行一条耗时大于1s的语句

1
select sleep(3);

查看日志记录情况

1
cat /usr/local/mysql/slow.log