EXPLAIN
是 MySQL 中用于查看查询执行计划的关键字,通过 EXPLAIN
可以了解 MySQL 优化器是如何选择执行查询的。EXPLAIN
的输出信息包括了许多字段,其中一些关键的字段和类别如下:
-
id
:- 查询的标识符,用于标识查询执行计划中的每个步骤。
-
select_type
:- 查询的类型。常见的有:
SIMPLE
:简单的 SELECT 查询,不包含子查询或 UNION。PRIMARY
:外层查询。SUBQUERY
:子查询。DERIVED
:派生表,例如嵌套的子查询或 WITH 语句中的查询。UNION
:UNION 中的第二个或后续查询。
- 查询的类型。常见的有:
-
table
:- 查询涉及的表名。
-
type
:- 访问表的方式,常见的有:
ALL
:全表扫描。index
:只扫描索引树。range
:索引范围扫描。ref
:基于索引的等值查询。eq_ref
:唯一索引的等值查询。const
:使用常数比较的查询。
- 访问表的方式,常见的有:
-
possible_keys
:- 可能使用的索引列表。这是优化器认为可能用于查询的索引的列表。
-
key
:- 实际使用的索引。如果为
NULL
,表示没有使用索引。
- 实际使用的索引。如果为
-
key_len
:- 使用的索引的长度。较短的索引通常更快。
-
ref
:- 显示索引如何与表中的行匹配。通常是一个常数或者其他表中的列。
-
rows
:- 估计的查询检索的行数。表示 MySQL 预计需要检索的行数。
-
Extra
:- 附加信息,可能包括一些其他有关查询执行的额外信息。
这些字段一起提供了有关查询执行计划的详细信息,有助于理解查询性能和索引使用情况。通过分析 EXPLAIN
的输出,可以优化查询语句和表结构,以提高查询性能。
来源地址:https://blog.csdn.net/zhujyy110/article/details/135477347