首先确认慢查询日志是否开启,通过SHOW VARIABLES检查slow_query_log等参数;若未开启可临时或通过配置文件永久启用;随后查看日志文件内容,使用tail、less等命令浏览;最后利用mysqldumpslow工具分析日志,按执行时间、次数等排序提取问题SQL。

MySQL慢查询日志是排查数据库性能问题的重要工具,通过它能发现执行时间较长的SQL语句。要查看慢查询日志,需先确认日志功能已开启,并找到日志文件位置。
1. 确认慢查询日志是否开启
登录MySQL后执行以下命令查看相关配置:
- SHOW VARIABLES LIKE 'slow_query_log'; — 查看慢查询日志是否启用(ON/OFF)
- SHOW VARIABLES LIKE 'slow_query_log_file'; — 查看日志文件存储路径
- SHOW VARIABLES LIKE 'long_query_time'; — 查看记录慢查询的阈值(单位:秒,默认10秒)
如果slow_query_log为OFF,可临时开启:
SET GLOBAL slow_query_log = 'ON';SET GLOBAL long_query_time = 2;
注意:上述设置在重启后失效,如需永久生效,需修改配置文件。
2. 开启慢查询日志(配置文件方式)
编辑MySQL配置文件my.cnf或my.ini(Linux下通常位于/etc/my.cnf),在[mysqld]段添加:
- slow_query_log = ON
- slow_query_log_file = /var/log/mysql/mysql-slow.log
- long_query_time = 2
- log_queries_not_using_indexes = ON
保存后重启MySQL服务使配置生效。
3. 查看慢查询日志内容
日志文件是纯文本格式,可用以下命令查看:
tail -f /var/log/mysql/mysql-slow.log或使用less、cat等工具浏览:
less /var/log/mysql/mysql-slow.log日志中每条记录包含执行时间、锁时间、返回行数、用户、SQL语句等信息,便于分析优化。
4. 使用mysqldumpslow工具分析日志
MySQL自带mysqldumpslow工具,可用于汇总和分析慢查询日志:
- mysqldumpslow -s at -t 10 mysql-slow.log — 显示执行时间最长的前10条SQL
- mysqldumpslow -s c -t 5 mysql-slow.log — 按执行次数排序,取前5条
常用参数说明:
-s:排序方式(at=平均时间,c=次数,l=锁定时间)
-t:限制输出条数
-g:配合正则过滤特定SQL
基本上就这些。开启并定期查看慢查询日志,有助于及时发现性能瓶颈,优化SQL语句。不复杂但容易忽略。










