explain结果中的type:
1. const:查询结果中只有1条记录匹配(不包括使用limit 1这种命令),它用于用常量匹配主键或唯一索引。其中,system是const的特例。
例如:SELECT * from rm_member where member_id = '0100809300';
说明:rm_member表中member_id是主键(下同)。
2. eq_ref:唯一索引查询。它用于多表连接查询时,匹配被关联的表(即前表)的主键或唯一索引的所有部分(而不是部分)。
例如:SELECT * from rm_member m, rm_member_tag t where m.member_id = t.member_id LIMIT 100;
3.ref:非唯一索引查询。它用于匹配被关联的表的主键或唯一索引的前缀(注意是前缀),或者非主键和唯一索引,即不能基于关键字匹配出1条记录。
例如: SELECT * from rm_member where employee_id = '14073034';
说明:employee_id列上创建了非唯一索引。
4.range:范围查询,例如:>、<、>=、<=、between and、or等范围查询。
例如: SELECT * from rm_member where employee_id = '14073034' or employee_id = '15041071';
5.index:它表示索引被全部扫描,但是没有扫描全部数据。
6.all:它表示全表扫描。