EXPLAIN 输出字段
字段名 | JSON 名称 | 意义 |
---|---|---|
id | select_id | SELECT标识符_ |
select_type | 无 | SELECT类型_ |
table | table_name | 输出行的表 |
partitions | partitions | 匹配的分区 |
type | access_type | 联接类型 |
possible_keys | possible_keys | 可供选择的索引 |
key | key | 实际选择的索引 |
key_len | key_length | 所选密钥的长度 |
ref | ref | 与索引比较的列 |
rows | rows | 估计要检查的行数 |
filtered | filtered | 按表条件过滤的行百分比 |
Extra | 没有 | 附加信息 |
Explain可视图表信息
系统名称 | 颜色 | 视觉图上的文字 | 工具提示相关信息 |
---|---|---|---|
SYSTEM | Blue | 单行:系统常数 | 成本极低 |
CONST | Blue | 单行:常数 | 成本极低 |
EQ_REF | Green | 唯一键查找 | 低成本——优化器能够找到可用于检索所需记录的索引。它很快,因为索引搜索直接指向包含所有行数据的页面 |
REF | Green | 非唯一键查找 | Low-medium – 如果匹配的行数很少,则为低;随着行数的增加而更高 |
FULLTEXT | Yellow | 全文索引搜索 | 专门的全文搜索。低——对于这个专门的搜索要求 |
REF_OR_NULL | Green | 键查找 + 获取 NULL 值 Low-medium – 如果匹配的行数很少;随着行数的增加而更高 | |
INDEX_MERGE | Green | 索引合并 | 中——在查询中寻找更好的索引选择以提高性能 |
UNIQUE_SUBQUERY | Orange | 子查询表的唯一键查找 | 低——用于高效的子查询处理 |
INDEX_SUBQUERY | Orange | 子查询表的非唯一键查找 | 低——用于高效的子查询处理 |
RANGE | Orange | 索引范围扫描 | 中——部分索引扫描 |
INDEX | Red | 全索引扫描 | 高——尤其是对于大型索引 |
ALL | Red | 全表扫描 | 全表扫描非常高——对于大表来说成本很高,但对小表影响较小。没有为该表找到可用的索引,这迫使优化器搜索每一行。这也可能意味着搜索范围非常广泛,以至于索引将毫无用处。 |
UNKNOWN | Black | 未知 | 注意:这是默认设置,以防无法确定匹配 |