MYSQL慢查询日志可以记录执行缓慢的sql语句以及执行时间,通常用来排查mysql性能问题
一、查看慢查询日志是否开启
show variables like 'slow_query%';
show variables like 'long_query_time'; -- 查询慢查询设置时间
二、开启慢查询的配置方式
1、通过命令临时开启
set global slow_query_log='ON';
set global slow_query_log_file='/var/lib/mysql/slow.log';
set global long_query_time=2;
2、通常情况下,修改配置文件永久开启
/etc/mysql/conf.d/mysql.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/slow.log
long_query_time = 2
配置完成后,重启mysql即可
3、使用docker容器时,修改配置文件永久开启
首先,在docker配置文件docker-compose.yml找到mysql映射关系
然后,修改 ./mysql/lis-conf/my.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/slow.log
long_query_time = 2
最后,重启mysql
三、查看mysql慢查询日志
运行一个执行时长超过配置时长的SQL,即可看到慢查询日志
1、通常情况下查看慢查询日志
cat /var/lib/mysql/slow.log
2、docker容器查看慢查询日志,路径还是docker配置中的映射路径
cat ./mysql/lis/data/slow.log
如图,即可定位到查询速度慢得SQL语句
如果想实时查看,可以使用tail命令