欢迎来到程序员中文网!

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

MySQL 慢查询日志分析与 SQL 调优实战

时间:2026年08月12日 05:32:21 浏览:0

MySQL 慢查询日志分析与 SQL 调优实战


慢查询日志记录执行时间超过阈值的 SQL,是性能调优的首要工具。


1. 开启慢查询日志


SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 1; -- 单位秒,建议 0.5~1
SET GLOBAL log_queries_not_using_indexes = ON; -- 记录未使用索引的查询

永久配置在 my.cnf


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

2. 使用 mysqldumpslow 分析


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

# 按平均执行时间排序
mysqldumpslow -s at -t 10 /var/log/mysql/slow.log

3. 使用 EXPLAIN 查看执行计划


EXPLAIN SELECT * FROM orders WHERE order_date > '2025-01-01';

关注列:



  • typeALL(全表扫描)需优化,refrange 较好。

  • key:实际使用的索引。

  • rows:扫描行数,越少越好。


4. 常见优化手段



  • 添加合适索引。

  • 避免 SELECT *,只取必要列。

  • 使用 JOIN 代替子查询。

  • 拆分复杂查询为多个简单查询。


定期分析慢日志,持续优化,是 DBA 的日常工作。