开启慢查询日志需先启用功能,设置阈值如2秒,指定日志路径并确保权限正确,还可开启未使用索引和管理语句记录,通过配置文件持久化并用工具分析日志。

在MySQL中配置慢查询日志,可以帮助我们识别执行效率较低的SQL语句,进而优化数据库性能。只要合理设置相关参数,就能记录下超过指定时间的查询操作。
1. 开启慢查询日志功能
默认情况下,MySQL可能未开启慢查询日志。可以通过以下命令查看当前状态:
SHOW VARIABLES LIKE 'slow_query_log';如果值为 OFF,需要手动开启。使用如下命令临时启用(重启后失效):
SET GLOBAL slow_query_log = 'ON';若要永久生效,需修改 MySQL 配置文件(通常是 my.cnf 或 my.ini):
[mysqld]slow_query_log = ON
2. 设置慢查询时间阈值
定义“慢”的标准是关键。默认通常为10秒,可根据实际需求调整。例如,将超过2秒的查询视为慢查询:
SET GLOBAL long_query_time = 2;同样,永久设置应写入配置文件:
[mysqld]long_query_time = 2
注意:动态修改后,新连接才能立即感知该值,当前会话可能仍显示旧值。
3. 指定慢查询日志文件路径
可以自定义日志文件的存储位置。先查看当前路径:
设置新路径(示例):
[mysqld]slow_query_log_file = /var/log/mysql/slow.log
确保MySQL进程对目标目录有写权限,否则日志无法生成。
4. 其他常用配置项
为进一步提升诊断能力,可启用以下选项:
- log_queries_not_using_indexes:记录未使用索引的查询
- log_slow_admin_statements:记录慢的管理类操作(如ALTER TABLE)
配置示例:
[mysqld]log_queries_not_using_indexes = ON
log_slow_admin_statements = ON
完成配置后,重启MySQL服务或动态刷新设置即可生效。定期分析慢日志,结合 mysqldumpslow 或 pt-query-digest 工具,能有效发现性能瓶颈。
基本上就这些,配置不复杂但容易忽略权限和持久化问题。










