简单地说是const是直接按主键或唯一键读取,eq_ref用于联表查询的情况,按联表的主键或唯一键联合查询。 下面的内容翻译自官方方档: const 该表最多有一个匹配行, 在查询开始时读取。由于只有一行, 因此该行中列的值可以被优化器的其余部分视为常量。const 表非常快, 因为它们只读一次。 const用于将 "主键" 或 "唯一"
一、type:连接类型 最关键的一列 效率(const>eq_ref>ref>range>index>all) 1、const:查询索引字段,并且表中最多只有一行匹配(好像只有主键查询只匹配一行才会是const,有些情况唯一索引匹配一行会是ref) 2、eq_ref 主键或者唯一索引 3、ref 非唯一索引(主键也是唯一索引) 4、range 索引的范围查询 5、index (t...
eq_ref 读取本表中和关联表表中的每行组合成的一行。除了 system 和 const 类型之外, 这是最好的联接类型。当连接使用索引的所有部分时, 索引是主键或唯一非 NULL 索引时, 将使用该值。eq_ref 可用于使用 = 运算符比较的索引列。比较值可以是常量或使用此表之前读取的表中的列的表达式。在下面的示例中, ...
ref:列与索引的比较 rows:估计要检查的行数 filtered:按表条件过滤的行百分比 Extra:附加信息 二狗:type 中有哪些常见的值? 按类型排序,从好到坏,常见的有:const > eq_ref > ref > range > index > ALL。 const:通过主键或唯一键查询,并且结果只有1行(也就是用等号查询)。因为仅有一行,所以优化器的其余...
2.const 最多只有一行匹配,在查询开始的时候,计算出常量对应的地址,直接访问,例如:select * from test where name ='zhang' 当name是唯一索引的时候,就有可能出现const。const非常快,因为它只读一次。 3.eq_ref 除了 system和 const类型之外,这是最好的连接类型。当两个表联查时使用索引的所有部分(针对的是组...
mysql 等于 eq mysql eq_ref 一、explain必备知识 1.type取值 性能从好到坏排序如下 system:该表只有一行(相当于系统表),system是const类型的特例 const:针对主键或唯一索引的等值查询扫描, 最多只返回一行数据. const 查询速度非常快, 因为它仅仅读取一次即可...
const:单表查询,条件是主键或者非NULL唯一索引的等值判断就是const(常数级别)。 eq_ref:连接查询中,被驱动表可能出现,出现条件与单表查询的const一样。 ref:单表查询,条件是唯一索引为NULL或者非唯一索引的等值判断就是ref(单点扫描区间)。 ref_or_null:与ref一样,条件加上OR 列 = NULL。
system/const:表中只有一行数据匹配,此时根据索引查询一次就能找到对应的数据。 eq_ref:使用唯一索引扫描,常见于多表连接中使用主键和唯一索引作为关联条件。 ref:非唯一索引扫描,还可见于唯一索引最左原则匹配扫描。 range:索引范围扫描,比如,<,>,between 等操作。
ref: 非唯一性索引扫描,和eq_ref 不同的是eq_ref 匹配的是唯一索引,ref它返回所有匹配某个单独值的行,它可能会找到多个符合条件的行。 range: 范围数据扫描。 index: 全索引扫描,通过扫描整棵索引树获取到结果。 All: 全表扫描。 Const 和eq_ref 的区别 两个都是在用到了主键索引或唯一索引的情况下出现,...
不同类型性能从强到差:system > const > eq_ref > ref > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > all。建议大家在平时书写sql时,多用explain进行分析,尝试去优化代码,只有不断的实践,才能让自己的sql能力越来越强。#2023我们一起跨年# 我是@程序员拾山,...