type显示的是访问类型,是较为重要的一个指标,可取值为:
type | 含义 |
---|---|
NULL | MySQL不访问任何表,索引,直接返回结果。 |
system | 表只有一行记录(等于系统表),这是const类型的特列,一般不会出现。 |
const | 表示通过索引一次就找到了,const用于比较primary key或者unique索引。因为只匹配一行数据,所以很快。如将主键置于where列表中,MySQL就能将该查询转换为一个常量。const于将主键 或唯一 索引的所有部分与常量值进行比较。 |
eq_ref | 类似ref,区别在于使用的是唯一索引,使用主键的关联查询,关联查询出的记录只有一条。常见于主键或唯一索引扫描 |
ref | 非唯一性索引扫描,返回匹配某个单独值的所有行。本质上也是一种索引访问,返回所有匹配某个单独值的所有行(多个) |
range | 只检索给定返回的行,使用一个索引来选择行。where之后出现between,<,>,in等操作。 |
index | index与ALL的区别为 index类型只是遍历了索引树,通常比ALL快,ALL是遍历数据文件. |
all | 将遍历全表以找到匹配的行 |
结果值从最好到最坏以此是:
一般来说,我们需要保证查询至少达到range级别,最好达到ref。