在MySQL官网中,type的取值非常多,而且可能是因为翻译的问题,大部分翻译过来的介绍都比较不好理解,以下会列举我理解的一些常用的取值
type到底是什么
大概就是访问或者关联的类型
一些重要的取值及其意义
后面的解释表示在什么情况下type会是对应的值;
system 查询的表本身只有一条数据
const 查询的条件使用主键/唯一索引,查询的结果只有一条数据,就好像查常量一样
eq_ref 关联查询中,关联条件使用的主键/唯一索引查询,匹配查询结果只有一条
ref 查询条件不是使用主键,查询结果可能有多条
range 范围查询,并且使用了索引
index 直接全部扫描索引就找到了结果,既使用了覆盖索引。如果辅助索引和主键索引(聚簇索引)中都有想要的数据,会优先选择辅助索引,因为辅助索引更小
ALL 没有使用索引,使用了全表扫描,扫描的是聚簇索引的表,直接从叶子节点开始扫描所有的值