MySQL执行计划【explain】,看这一篇就够了!

MySQL执行计划【explain】,看这一篇就够了!
最新回答
拿命去忘记你°

2026-05-25 18:45:06

MySQL执行计划的解读:

MySQL的EXPLAIN命令用于获取SELECT语句的执行计划,通过该计划可以深入了解查询的执行细节,从而进行优化。EXPLAIN执行计划主要包含以下字段信息:

  1. id:

    • 表示查询中执行SELECT子句或操作表的顺序。
    • id值越大,代表优先级越高,越先执行。
  2. select_type:

    • 表示SELECT查询的类型。
    • 用于区分普通查询、联合查询、子查询等复杂查询类型。
  3. table:

    • 查询的表名,可能为临时表。
    • 当FROM子句中有子查询时,表示当前查询依赖的其他查询的id。
  4. partitions:

    • 查询时匹配到的分区信息。
    • 对于非分区表,该值为NULL。
  5. type:

    • 查询使用的类型,是SQL优化中的一个重要指标。
    • 包括system、const、eq_ref、ref、ref_or_null、index_merge、range、index、all等类型。
  6. possible_keys:

    • 此次查询中可能选用的索引。
  7. key:

    • 此次查询中确切使用到的索引。
  8. key_len:

    • 使用的索引的长度。
  9. ref:

    • 显示索引的哪一列或常数被用于查找值。
  10. rows:

    • 估算要找到所需的记录,需要读取的行数。
    • 是评估SQL性能的一个重要数据。
  11. filtered:

    • 存储引擎返回的数据在经过过滤后,剩下满足条件的记录数量的比例。
  12. Extra:

    • 表示额外的信息说明。
    • 包括using where、using index、using index & using where、null、using index condition、using temporary、filesort等额外信息。

使用技巧: 使用EXPLAIN extended + SHOW WARNINGS可以在原本EXPLAIN的基础上额外提供一些查询优化的信息,得到优化以后的可能的查询语句。

通过详细解读这些字段信息,可以深入理解MySQL查询的执行过程,从而进行有效的查询优化。