1. 配置方法

修改 MySQL 配置文件(my.cnfmy.ini):

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
  • 参数说明
    • slow_query_log=1:启用慢查询日志。
    • slow_query_log_file:日志文件路径。
    • long_query_time:定义慢查询阈值(单位:秒),默认 10 秒,建议设置为 1-2 秒。
    • log_queries_not_using_indexes:记录未使用索引的查询(可选)。

动态设置(无需重启)

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;

2. 查看慢查询

SHOW VARIABLES LIKE 'slow_query%';
SHOW VARIABLES LIKE 'long_query_time';

性能影响

  • 对性能影响较小,但高频写入日志可能导致磁盘 I/O 压力。
  • long_query_time 设置过低或 log_queries_not_using_indexes 启用,日志量激增可能影响性能。

建议

  • 设置合理的阈值(如 long_query_time=2)。
  • 日志文件使用 SSD 存储。
  • 定期归档或清理历史日志。