mysql explain执行计划,常见Extra解释

  1. Using index

    • 表示查询使用了覆盖索引,无需回表查询。
    • 所有需要的数据都可以直接从索引中获取。
  2. Using where

    • MySQL 服务器将在存储引擎检索行后再应用 WHERE 条件。
    • 一般是因为where条件未命中全部索引,部分条件需要在mysql服务层优化
  3. Using index condition

    • 表示使用了索引下推优化(Index Condition Pushdown)。
    • 存储引擎会利用索引中的信息来减少需要检查的行数。
  4. Using temporary

    • MySQL 需要创建一个临时表来存储结果。
    • 通常出现在 ORDER BY 或 GROUP BY 操作中。
  5. Using filesort

    • MySQL 会对结果使用外部排序,而不是按索引顺序读取。
    • 通常出现在 ORDER BY 操作中,当无法利用索引进行排序时。
  6. Range checked for each record (index map: N)

    • MySQL 没有发现好的索引,将对每个行组合检查使用哪个索引更好。
  7. Using join buffer (Block Nested Loop)

    • MySQL 使用了连接缓冲。
    • 通常出现在没有适当索引的连接操作中。
  8. Impossible WHERE

    • WHERE 子句总是为 false,不会返回任何行。
  9. Select tables optimized away

    • 查询已经在优化阶段得到结果,例如通过使用索引或针对 MIN/MAX 操作进行优化。
  10. No tables used

    • 查询没有 FROM 子句,或者使用 FROM DUAL。
  11. Using intersect(...) 或 Using union(...)

    • 表示使用了索引合并优化, 即使用了多个索引,然后求交集或并集
    • intersect 交集;union 并集
posted @ 2025-06-18 21:23  Katsu  阅读(26)  评论(0)    收藏  举报