首页/数据/数据库速查/EXPLAIN 输出列总览
性能与调优57 条

EXPLAIN 输出列总览

EXPLAIN 是查询优化第一工具:输出 12 列覆盖访问路径(type/key/key_len)、行数估算(rows/filtered)与附加动作(Extra),读懂列即读懂计划。

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

关键列

列含义
id / select_type查询块序号 / 类型(SIMPLE/PRIMARY/SUBQUERY…)
table / partitions对象与分区
type访问类型(性能关键)
possible_keys / key候选索引 / 实际选用
key_len索引使用长度(联合索引列数线索)
rows / filtered估算扫描行数 / 条件过滤比例
Extra附加信息(filesort/temporary/覆盖索引等)

基础用法

基础用法
EXPLAIN SELECT o.id, o.amount FROM appdb.orders o
WHERE o.user_id = 12345 AND o.status = 1 ORDER BY o.created_at DESC LIMIT 20;
EXPLAIN 是「估算」:rows 来自统计信息,可能与真实执行差一个数量级;要实测用 EXPLAIN ANALYZE。

易错点

  • 只看 key 非 NULL 就放心:key 走错列(联合索引前缀不对)照样全扫
  • 忽略 filtered=1.00 与 rows 巨大:扫描行数才是成本主体

数据来源与参考

  • MySQL 8.0 Reference Manual: EXPLAIN Output Format

相关工具

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