EXPLAIN说明

该博客为转载内容,转载自https://www.cnblogs.com/chengxiansheng/p/10821576.html ,涉及数据库相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列名类型解释
id SELECT语句的ID编号,优先执行编号较大的查询,如果编号相同,则从上向下执行
select_typeSIMPLE一条没有UNION或子查询部分的SELECT语句
PIMARY最外层或最左侧的SELECT语句
UNIONUNION语句里的第二条或最后一条SELECT语句
DEPENDENT UNION和UNION类型的含义相似,但需要依赖于某个外层查询
UNION RESULT一条UNION语句的结果
SUBQUERY子查询中的第一个SELECT子句
DEPENDENT SUBQUERY和SUBQUERY类型的含义相似,但需要依赖于某个外层查询
DERIVEDFROM子句里的子查询
tablet1各输出行里的信息是关于哪个数据表的
PartitionsNULL将要使用的分区.只有EXPLAIN PARTITIONS ...语句才会显示这一列.非分区表显示为NULL
type 联接操作的类型,性能由好到差依次如下
system表中仅有一行
const单表中最多有一个匹配行
eq_ref联接查询中,对于前表的每一行,在此表中只查询一条记录,使用了PRIMARY或UNIQUE
ref联接查询中,对于前表的每一行,在此表中只查询一条记录,使用了INDEX
ref_or_null联接查询中,对于前表的每一行,在此表中只查询一条记录,使用了INDEX,但是条件中有NULL值查询
index_merge多个索引合并
unique_subquery举例说明: value IN (SELECT primary_key FROM single_table WHERE some_expr)
index_subquery举例说明: value IN (SELECT key_column FROM single_table WHERE some_expr)
range只检索给定范围的行,包括如下操作符: =, <>, >, >=, <, <=, IS NULL, <=>, BETWEEN, or IN()
index扫描索引树(略比ALL快,因为索引文件通常比数据文件小)
ALL前表的每一行数据都要跟此表匹配,全表扫描
possible_keysNULLMySQL认为在可能会用到的索引.NULL表示没有找到索引
keyNULL检索时,实际用到的索引名称.如果用了index_merge联接类型,此时会列出多个索引名称,NULL表示没有找到索引
key_lenNULL实际使用的索引的长度.如果是复合索引,那么只显示使用的最左前缀的大小
refNULLMySQL用来与索引值比较的值, 如果是单词const或者???,则表示比较对象是一个常数.如果是某个数据列的名称,则表示比较操作是逐个数据列进行的.NULL表示没有使用索引
rows MySQL为完成查询而需要在数据表里检查的行数的估算值.这个输出列里所有的值的乘积就是必须检查的数据行的各种可能组合的估算值
ExtraUsing filesort需要将索引值写到文件中并且排序,这样按顺序检索相关数据行
Using indexMySQL可以不必检查数据文件, 只使用索引信息就能检索数据表信息
Using temporary在使用 GROUP BY 或 ORDER BY 时,需要创建临时表,保存中间结果集
Using where利用SELECT语句中的WHERE子句里的条件进行检索操作

转载于:https://www.cnblogs.com/chengxiansheng/p/10821576.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值