const:单表查询,条件是主键或者非NULL唯一索引的等值判断就是const(常数级别)。 eq_ref:连接查询中,被驱动表可能出现,出现条件与单表查询的const一样。 ref:单表查询,条件是唯一索引为NULL或者非唯一索引的等值判断就是ref(单点扫描区间)。 ref_or_null:与ref一样,条件加上OR 列 = NULL。 index_merge:之前...
const:表示通过索引一次就找到了,如通过主键和唯一索引的等值查询。 explain select * from t_student where id = '0109bc0f'; ref:非唯一索引,等值匹配,可能有多行命中 ,返回匹配某个单独值的所有行。 alter table t_student add index idx_qq(qq_account) ; explain select * from t_student where qq_...
const:表示MySQL在查询中使用了常量条件进行了索引查找,只会返回一行数据。 eq_ref:表示MySQL在查询中使用了索引的等值连接,并且连接条件是通过唯一索引进行的。 ref:表示MySQL在查询中使用了索引的等值连接,但连接条件不是唯一索引。这种情况下,MySQL可能会扫描索引并返回匹配条件的多行。 range:表示MySQL在查询中使用...
const: 通过主键或唯一二级索引与常数的等值比较来定位一条记录,如果是联合索引,则只有在索引列的每一个列都与常数进行等值比较时,这个 const 访问才有效 ref: 通过二级索引与常数进行等值比较,形成的扫描区间为单点扫描区间的访问 ref_or_null: 相比于 ref 多扫描了一些值为 NULL 的二级索引列 range: 使用索引...
一、type:连接类型 最关键的一列 效率(const>eq_ref>ref>range>index>all) 1、const:查询索引字段,并且表中最多只有一行匹配(好像只有主键查询只匹配一行才会是const,有些情况唯一索引匹配一行会是ref) 2、eq_ref 主键或者唯一索引 3、ref 非唯一索引(主键也是唯一索引) ...
一、type:连接类型 最关键的一列 效率(const>eq_ref>ref>range>index>all) 1、const:查询索引字段,并且表中最多只有一行匹配(好像只有主键查询只匹配一行才会是const,有些情况唯一索引匹配一行会是ref) 2、eq_ref 主键或者唯一索引 3、ref 非唯一索引(主键也是唯一索引) ...
eq_ref 对于先前的表的每种行组合,从eq_ref连接类型对应的表中读取一行。除了system和const连接类型外,eq_ref是最好的联接类型。当连接使用索引的所有部分并且索引是主键或非空唯一索引时,将使用eq_ref连接类型。 eq_ref可用于使用=运算符进行比较的索引列。比较值可以是常量,也可以是使用在此表之前读取的表中列...
ref:当通过普通的二级索引列与常量进行等值匹配的方式 询某个表时 const:当我们根据主键或者唯一得二级索引列与常数进行等值匹配时,对单表的访问方法就是 const range:如果使用索引获取某些单点扫描区间的记录。 index:当可以使用覆盖 ,但需要扫描全部的索引记录时。
const:通过主键或唯一键查询,并且结果只有1行(也就是用等号查询)。因为仅有一行,所以优化器的其余部分可以将这一行中的列值视为常量。 eq_ref:通常出现于两表关联查询时,使用主键或者非空唯一键关联,并且查询条件不是主键或唯一键的等号查询。 ref:通过普通索引查询,并且使用的等号查询。
4,ref 应用场景:普通二级索引等值查询。比如:除了唯一索引,我们更多的会使用普通的二级索引。由于通过二级索引,可能会查询到多个匹配值,相比const性能差那么一点。MySQL就把这种类型的查询定义为了ref。在上面我们说到,由于唯一索引可能存在多个null,所以用不了const。那对于 select * from t2 where key2 is ...