type
status
date
slug
summary
tags
category
icon
password
在MySQL中,
EXPLAIN
语句的Extra
列提供了关于查询执行的额外信息。这些信息有助于理解MySQL是如何执行给定查询的,尤其在性能调优方面至关重要。以下是可能出现在Extra
列的核心条目:- Using filesort:使用外部算法进行排序,而不是索引。
- Using index:查询仅通过索引完成,没有读取数据行。
- Using temporary:使用临时表处理查询,例如在
GROUP BY
操作中。
- Using where:WHERE子句用于过滤记录。
- Using join buffer:使用连接缓冲区执行表连接。
- Impossible where:WHERE子句的条件永远不会为真。
- Select tables optimized away:查询优化消除了对表的访问。
- Distinct:执行去重操作。
- Using index condition:使用索引条件推送(Index Condition Pushdown,ICP)。
- Using index for group-by:使用索引进行GROUP BY操作。
- Using MRR:使用多范围读取(Multi-Range Read)优化。
- Using sort_union(...):使用合并多个索引扫描的结果并排序。
- Using union(...):使用合并多个索引扫描的结果,但不排序。
- Using intersect(...):使用多个索引的交集来优化查询。
- Range checked for each record (index map: ...):逐条记录检查是否可以使用范围查询。
- No tables used:查询中没有使用表(可能是简单的SELECT操作)。
- Using where with pushed condition:使用了带有推送条件的WHERE子句。
- Using index for join:使用索引执行连接操作。
- Full scan on NULL key:对空键进行完全扫描。
- LooseScan:使用LooseScan策略进行子查询优化。
这些条目各自表达了不同的查询执行细节,理解它们有助于识别可能的性能瓶颈和优化点。需要注意的是,这些描述可能根据MySQL的不同版本和特定的查询情况略有不同。
- 作者:奥利弗
- 链接:https://www.aolifu.org/article/mysql_extra
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。