最为常见的类型有system,const,eq_ref,ref,range,index,All
按照性能从高到低顺序如下:
NULL:不用访问表或索引,就可直接得出结果。果。
system:该表是最多仅有一行的系统表。(这是const类型的一个特例)
系统表中的数据通常已经加载到了内存中,所以不需要磁盘IO。
例子1:查询系统表
const:最多只有一个匹配行,所以该行中的其它列的值可以当作常量来处理。
例如,根据主键primary key或唯一索引unique index进行查询。eq_ref:使用唯一索引,对于每个索引键值,表中只有一条记录匹配。简单说,就是多表连接中使用primary key或unique index作为关联条件。ref:使用非唯一索引,或唯一索引的前缀扫描。ref_or_null:与ref类似,区别在于条件中包含对NULL的查询。index_merge:索引合并优化。unique_subquery:in的后面是一个查询主键字段的子查询。index_subquery:与unique subquery类似,区别在于in的后面是查询非唯一索引字段的子查询。range:只检索指定范围的行,使用一个索引来选择行。常见于