MySQL 慢查询日志:配置、分析与性能优化实战
什么是慢查询日志
慢查询日志(Slow Query Log)是 MySQL 内置的一种诊断工具,专门用于记录执行时间超过指定阈值的 SQL 语句。它是排查数据库性能瓶颈、优化查询效率的重要手段。
核心作用
- 性能诊断:快速定位执行效率低下的 SQL 语句。
- 瓶颈定位:分析查询变慢的原因,如全表扫描、索引缺失或锁等待。
- 优化依据:为后续的 SQL 重构和索引调整提供真实数据支持。
配置参数详解
在调整之前,先了解关键参数:
-- 查看所有慢查询相关参数
SHOW VARIABLES LIKE '%slow%';
SHOW VARIABLES LIKE '%long_query_time%';
主要配置项说明:
slow_query_log:控制是否开启(ON/OFF)。slow_query_log_file:指定日志文件路径。long_query_time:阈值(秒),默认 10 秒,超过此时间的 SQL 才会被记录。min_examined_row_limit:最少检查行数阈值,低于此值不记录。log_queries_not_using_indexes:是否记录未使用索引的查询(即使很快)。log_output:输出方式,支持 FILE(文件)、TABLE(表)或 NONE。
开启和配置
临时开启(重启失效)
适用于测试环境或临时排查,无需修改配置文件:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2; -- 设为 2 秒
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
SET GLOBAL log_queries_not_using_indexes = 'ON';
永久开启(修改配置文件)
生产环境建议修改 my.cnf 或 my.ini 并重启服务:


