如何分析mysql中Explain的执行结果2

104 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情

const

常量值查询。例如用主键或者唯一索引,只能得到一行。 image.png

system

可以理解成常量查询的特例。例如从常量查询结果集中查询(即只有一条记录的常量派生表) image.png

eq_ref

关联表关联条件为主键或者唯一索引。且被关联表(test_book)所有字段都是索引。如果有一个字段是非索引,则类型会变成ALL. image.png

ref

使用普通索引查询或联合索引最左匹配原则 image.png

image.png

range

一般出现在 in,between,>,< 或>= 或模糊查询如 like ‘葫%’ image.png

image.png

index

一般出现在覆盖索引所在的表中。如test_book表,通过查询二级索引就能获取所有数据,相对于all,它也是扫描全表,但是扫描的是索引树,然后再回表,但是扫描二级索引树效率是很高的。 image.png

all

即要全表扫描

possible_keys

即可能用到的索引。

key

语句中实际用到的索引。如果为NULL,说明没有使用。

ref

这一列显示了在key列记录的索引中,表查找值所用到的列或常量,常见的有:const(常量),字段名(库名.test_author.id)。

rows

mysql要检测的大概行数。

extra

展示的额外信息。