首页/数据/数据库速查/慢 SQL 定位与优化全流程(场景)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条
性能与调优57 条
Redis 命令96 条Redis 运维与场景124 条

慢 SQL 定位与优化全流程(场景)

真实排障顺序:慢日志/监控发现 → 聚合排序 → EXPLAIN 看计划 → EXPLAIN ANALYZE 验证 → 优化(改写/索引/结构)→ 回归对比 → 纳入巡检。

数据库速查数据更新于 2026-10-12
  • ① 发现:慢日志 / P_S top / 监控告警
  • ② 聚合:pt-query-digest 按总耗时排序选目标
  • ③ 定性:EXPLAIN 看 type/rows/filtered/Extra
  • ④ 实测:EXPLAIN ANALYZE 定位真实瓶颈步骤
  • ⑤ 优化:改写 SQL / 加或改索引 / 表结构治理
  • ⑥ 回归:新旧计划与耗时对比,观察期后收尾

一条龙命令流

一条龙命令流
pt-query-digest --limit 10 /var/log/mysql/slow.log
mysql -e "EXPLAIN SELECT ..."        # 看计划
mysql -e "EXPLAIN ANALYZE SELECT ..."  # 实测
# 加索引后回归
mysql -e "EXPLAIN ANALYZE SELECT ..."  # 对比前后
优化目标先立「验收线」(如 P99 < 100ms);没有对比基线的优化等于猜。

易错点

  • 跳过聚合直接改最刺眼的一条:花时间改了低价值目标
  • 优化后不做回归:新索引让另一条查询变慢(索引竞争)时无人发现

数据来源与参考

  • MySQL 8.0 Reference Manual: Optimization
  • Percona Toolkit: pt-query-digest

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌