首页/数据/SQL 速查/EXPLAIN ANALYZE 实测统计
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

EXPLAIN ANALYZE 实测统计

MySQL 8.0.18+ 会真正执行语句,输出每个节点的估算与实际 rows、耗时对比,用于发现估算偏差。

SQL 速查数据更新于 2026-10-12

示例

示例
EXPLAIN ANALYZE
SELECT o.id, o.total
FROM orders o
WHERE o.user_id = 100
ORDER BY o.created_at DESC
LIMIT 10;

-- 输出片段:
-- -> Limit: 10 row(s)  (actual time=0.35..0.42 rows=10 loops=1)
--     -> Index lookup on o using idx_user_created (user_id=100)
--        (actual time=0.12..0.30 rows=8 loops=1)
actual time该节点首行..末行的实测耗时;含子节点累计
loops节点执行次数;总工作量约为 rows × loops
偏差信号估算 rows 与实测 rows 差距大 → 统计信息或直方图需要更新
ANALYZE 会实际执行语句:重查询挑低峰执行;对写语句若要实测,请放进事务并回滚,支持范围以所用版本文档为准。

易错点

  • 在生产库随手 ANALYZE 重查询:语句真实执行,可能带来瞬时压力与资源竞争
  • 忽略 loops 直接看 rows:嵌套循环内层是单次循环数值,不乘 loops 会低估总工作量

数据来源与参考

  • MySQL 8.0 Reference Manual §8.8.4 Obtaining Information with EXPLAIN ANALYZE
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌