mysql explain执行计划,常见Extra解释
-
Using index
- 表示查询使用了覆盖索引,无需回表查询。
- 所有需要的数据都可以直接从索引中获取。
-
Using where
- MySQL 服务器将在存储引擎检索行后再应用 WHERE 条件。
- 一般是因为where条件未命中全部索引,部分条件需要在mysql服务层优化
-
Using index condition
- 表示使用了索引下推优化(Index Condition Pushdown)。
- 存储引擎会利用索引中的信息来减少需要检查的行数。
-
Using temporary
- MySQL 需要创建一个临时表来存储结果。
- 通常出现在 ORDER BY 或 GROUP BY 操作中。
-
Using filesort
- MySQL 会对结果使用外部排序,而不是按索引顺序读取。
- 通常出现在 ORDER BY 操作中,当无法利用索引进行排序时。
-
Range checked for each record (index map: N)
- MySQL 没有发现好的索引,将对每个行组合检查使用哪个索引更好。
-
Using join buffer (Block Nested Loop)
- MySQL 使用了连接缓冲。
- 通常出现在没有适当索引的连接操作中。
-
Impossible WHERE
- WHERE 子句总是为 false,不会返回任何行。
-
Select tables optimized away
- 查询已经在优化阶段得到结果,例如通过使用索引或针对 MIN/MAX 操作进行优化。
-
No tables used
- 查询没有 FROM 子句,或者使用 FROM DUAL。
-
Using intersect(...) 或 Using union(...)
- 表示使用了索引合并优化, 即使用了多个索引,然后求交集或并集
- intersect 交集;union 并集

浙公网安备 33010602011771号