Mysql 慢查询日志
1 查看数据库是否开启了慢查询
show variables like 'slow_query%';
如果参数slow_query_log的value值为ON,则是开启了慢查询日志,日志路径为参数slow_query_log_file对应的value值。参数slow_query_log的value值为OFF则未开启慢查询日志。
2 开启慢查询日志配置
2.1 临时配置
2.1.1 通过命令临时开启:
set global slow_query_log='ON';
2.1.2 通过命令自定义慢查询日志路径:
set global slow_query_log_file='/var/lib/mysql/data/mysql-query-slow.log';
2.2 永久配置
修改配置文件达到永久配置状态:
/etc/mysql/conf.d/mysql.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/data/mysql-query-slow.log
long_query_time = 2
配置好后,重新启动 MySQL 即可。
3 自定义慢查询时间
show variables like 'long_query_time';
mysql默认为10秒,可以通过命令或者修改配置文件自定义慢查询时间。
例如,修改慢查询时间为2秒:
3.1 临时配置
set global long_query_time=2;
3.2 永久配置
/etc/mysql/conf.d/mysql.cnf
[mysqld]
long_query_time = 2
配置好后,重新启动 MySQL 即可。
4 测试慢查询日志
分别执行查询
select sleep(1);
select sleep(2);
在上述配置中设置的慢查询日志路径中打开日志文件,即可看到结果:
可以看到sleep(2)被慢查询日志记录下来。