ref访问方法通常用于查找单个值或范围值。 const:const是指MySQL在查询过程中可以直接定位到唯一一行数据的一种访问方法。当查询条件中包含主键或唯一索引列的等值条件时,MySQL会选择const访问方法。const访问方法通常用于快速定位到目标行。 区别 ref vs const:ref和const的区别在于MySQL使用的索引类型不同。ref通常使用...
const:单表查询,条件是主键或者非NULL唯一索引的等值判断就是const(常数级别)。 eq_ref:连接查询中,被驱动表可能出现,出现条件与单表查询的const一样。 ref:单表查询,条件是唯一索引为NULL或者非唯一索引的等值判断就是ref(单点扫描区间)。 ref_or_null:与ref一样,条件加上OR 列 = NULL。 index_merge:之前...
1、const 通过主键来定位一条记录 select * from demo_table where id = 2; 通过唯一二级索引来定位一条记录 select * from demo_table where key2 = 'zhangsan01'; 规定通过主键或者唯一二级索引列与常数的等值比较来定位一条记录的访问方法定义为const。 2、ref 有时我们需要通过某个普通二级索引列与常数进...
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +—-+———-+——-+——-+———+———+———+——-+——+——-+ | 1 | SIMPLE | a11 | const | PRIMARY | PRIMARY | 4 | const | 1 | | +—-+———-+——-+——-+—...
const:根据主键或者唯一索引访问时,会出现const eq_ref:类似ref,区别就在使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配,简单来说,就是多表连接中使用primary key或者 unique key作为关联条件 ref:使用非唯一性索引进行访问时,可能出现ref
简单地说是const是直接按主键或唯一键读取,eq_ref用于联表查询的情况,按联表的主键或唯一键联合查询。 下面的内容翻译自官方方档: const 该表最多有一个匹配行, 在查询开始时读取。由于只有一行, 因此该行中列的值可以被优化器的其余部分视为常量。const 表非常快, 因为它们只读一次。
类似于select * from table where name=xx or name IS NULL,那么此时执行计划的type就是ref_of_null。 all all意思就是全表扫描,扫描你聚簇索引里所有的叶子节点,当然是最慢的一种了。 总结: const、ref和range,都是基于索引树的二分查找和多层跳转来查询,所以性能一般都是很高的; ...
一、type:连接类型 最关键的一列 效率(const>eq_ref>ref>range>index>all) 1、const:查询索引字段,并且表中最多只有一行匹配(好像只有主键查询只匹配一行才会是const,有些情况唯一索引匹配一行会是ref) 2、eq_ref 主键或者唯一索引 3、ref 非唯一索引(主键也是唯一索引) ...
ref:表示使用非唯一索引进行单值查询。eq_ref:一般情况下出现在多表join查询,表示前面表的每一个记录,都只能匹配后面表的一行结果。const:表示使用主键或唯一索引做等值查询,常量查询。NULL:表示不用访问表,速度最快。3. possible_keys表示查询时能够使用到的索引。注意并不一定会真正使用,显示的是索引名称。...
system,const:一般就是只有一条记录,可以用常量代替的eq_ref:使用的索引是主键索引或唯一索引ref:使用的是普通索引range:范围扫描通常出现在in(),bewteen,>,<,=index:扫描全表索引,通常比ALL快一点ALL:扫描全表4. key会用到的索引 possible_key 可能会用到的索引 key_len 索引长度,不同的类型长度计算方式不...