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

EXPLAIN ANALYZE 与性能诊断链路

8.0.18+ 的 EXPLAIN ANALYZE 实际执行并在计划上标注真实耗时与行数估计误差,是 SQL 性能诊断的完整闭环。

数据库速查数据更新于 2026-10-12
用途真实执行计划
语法EXPLAIN ANALYZE SELECT …
输出actual time / rows / loops + 估算对比

诊断示例

诊断示例
EXPLAIN ANALYZE
SELECT o.id, o.amount, u.name
FROM orders o JOIN users u ON u.id = o.user_id
WHERE o.status = 'paid' AND o.created_at >= '2026-09-01'
ORDER BY o.created_at DESC LIMIT 50;

配合慢日志定位

配合慢日志定位
SELECT start_time, query_time, rows_examined, rows_sent, sql_text
FROM mysql.slow_log ORDER BY query_time DESC LIMIT 10;
估算 rows 与实际 rows 差异巨大时,先 ANALYZE TABLE 刷统计信息,再评估统计信息采样参数。

易错点

  • EXPLAIN ANALYZE 会真实执行语句,含写操作时切勿直接在 DML 上使用
  • 单次采样受缓存与并发影响,重要结论多跑几次再下判断

数据来源与参考

  • MySQL 8.0 Reference Manual: EXPLAIN ANALYZE

相关工具

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