欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

MySQL 慢查询日志分析与优化实践

时间:2026年08月12日 04:46:50 浏览:1

开启慢查询日志


-- 查看当前状态
SHOW VARIABLES LIKE 'slow_query%';
SHOW VARIABLES LIKE 'long_query_time';

-- 开启并设置阈值(1秒)
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 1;

配置 my.cnf 永久生效:


slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

使用 mysqldumpslow 分析


# 按查询次数排序
mysqldumpslow -s c -t 10 /var/log/mysql/slow.log

# 按查询时间排序
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log

使用 pt-query-digest(Percona 工具集)


pt-query-digest /var/log/mysql/slow.log > report.txt

优化方向



  • 添加合适的索引

  • 改写 SQL(避免子查询,改用 JOIN)

  • 减少返回字段数

  • 调整 join_buffer_size 等参数


慢查询日志是 DBA 调优的第一手资料。