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

16次阅读

MySQL 慢查询日志是定位性能瓶颈最直接有效的手段,通过设置 slow_query_log、long_query_time 等参数可临时或永久开启,支持 FILE 或 TABLE 输出,配合 mysqldumpslow 分析优化。

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

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
text=ZqhQzanResources