以下排序从最优到最差: system:表内只有一行数据。 const:最多只会有一条记录匹配,常用于主键或者唯一索引为条件查询。 eq_ref:当连接使用的索引为主键和唯一时会出现。 ref:使用普通索引 = 或 <=> 运算符进行比较将会出现。 fulltext:使用全文索引。 ref_or_null:跟 ref 类型类似,只是增加了 null 值的判断,实际用的不多。语句为 where name = ‘kaka’ and name is null,name 为普通索引。 index_merge:查询语句使用了俩个以上的索引,常见在使用 and、or 会出现,官方文档将此类型放在 ref_or_null 之后,但是在很多的情况下由于读取索引过多性能有可能还不如 range。 unique_subquery:用于 where 中的 in 查询,完全替换子查询,效率更高。语句为 value IN (SELECT primary_key FROM single_table WHERE some_expr) index_subquery:子查询中的返回结果字段组合是一个索引(或索引组合),但不是一个主键或唯一索引。 range:索引范围查询,常见于使用 =,<>,>,>=,<,<=,IS NULL,<=>,BETWEEN,IN() 或者 like 等运算符的查询中。 index:索引全表扫描,把索引从头到尾扫一遍。 all:全表扫描,性能最差。
[MySQL]explain语句中type字段的具体解释
2021-03-09 16:50:24
浏览数 (1)