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

12次阅读

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