如何开启mysql慢查询日志_mysql性能排查配置

来源:这里教程网 时间:2026-02-28 20:43:44 作者:

MySQL慢查询日志是定位性能瓶颈最直接有效的手段之一,开启后能记录执行时间超过指定阈值的SQL语句,便于后续分析优化。

确认当前慢查询日志状态

登录MySQL后,先检查是否已启用及配置参数:

SHOW VARIABLES LIKE 'slow_query_log'; —— 查看是否开启(ON/OFF) SHOW VARIABLES LIKE 'long_query_time'; —— 查看慢查询阈值(单位:秒,默认10秒) SHOW VARIABLES LIKE 'slow_query_log_file'; —— 查看日志文件路径

临时开启(重启失效)

适合测试或紧急排查,无需修改配置文件:

SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 1;(建议设为1秒便于捕获更多可疑SQL) SET GLOBAL log_output = 'FILE';(可选,支持 FILE 或 TABLE;TABLE方式需配合 mysql.slow_log 表)

永久开启(推荐生产环境使用)

编辑MySQL配置文件(如 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf),在 [mysqld] 段落下添加:

slow_query_log = ON slow_query_log_file = /var/log/mysql/mysql-slow.log(确保目录存在且MySQL用户有写权限) long_query_time = 1 log_queries_not_using_indexes = OFF(按需开启,避免日志爆炸;若要分析索引缺失问题可设为ON)

保存后重启MySQL服务:systemctl restart mysqld(或 service mysql restart

验证与查看日志

执行一条明显慢的SQL(如 SELECT SLEEP(2);),再检查日志文件是否生成对应记录:

tail -f /var/log/mysql/mysql-slow.log mysqldumpslow 工具汇总分析(如 mysqldumpslow -s at -t 10 /var/log/mysql/mysql-slow.log

相关推荐