const:单表查询,条件是主键或者非NULL唯一索引的等值判断就是const(常数级别)。 eq_ref:连接查询中,被驱动表可能出现,出现条件与单表查询的const一样。 ref:单表查询,条件是唯一索引为NULL或者非唯一索引的等值判断就是ref(单点扫描区间)。 ref_or_null:与ref一样,条件加上OR 列 = NULL。 index_merge:之前...
const表示这是一个常量值。 小结 通过上述步骤,你学习了如何在MySQL中创建表、插入数据、创建索引、执行查询并分析执行计划。在分析执行计划时,ref和const的出现表明查询能够利用索引来提高性能。 REF通常表示使用索引中某个值(可以是一个字段或者常量),而CONST则意味某个表仅有一行符合条件。 这两者都极大地提升了查...
详解执行计划 type 列 通过explain 语句可以帮助我们查看查询语句的具体执行计划,那么在执行计划中的 type 列表示 MySQL 是如何查找对应的数据了,我们先来说一下执行计划中 type 列常见的值 这里主要说一下常见的几种:const、ref、range、index,性能从左到右逐渐变差 首先,const 的话表示性能是常量级的,非常快 就...
| 1 | SIMPLE | d | eq_ref | PRIMARY | PRIMARY | 4 | test.p.dept_id| 1| Using where; Using index |我们发现在执行这条SQL语句时出现了 usingtemporary,我们再来看看下面这条SQL语句,去掉 条件中 group by分组 mysql> EXPLAIN SELECT p.id,d.did from person p LEFT JOIN dept d ON p.dept_...
一、type:连接类型 最关键的一列 效率(const>eq_ref>ref>range>index>all) 1、const:查询索引字段,并且表中最多只有一行匹配(好像只有主键查询只匹配一行才会是const,有些情况唯一索引匹配一行会是ref) 2、eq_ref 主键或者唯一索引 3、ref 非唯一索引(主键也是唯一索引) ...
显示这一步所访问数据库中表名称(显示这一行的数据是关于哪张表的),有时不是真实的表名字,可能是简称,例如上面的e,d,也可能是第几步执行的结果的简称 四、type 对表访问方式,表示MySQL在表中找到所需行的方式,又称“访问类型”。 常用的类型有:ALL、index、range、 ref、eq_ref、const、system、NULL(从左...
const类型要求你的二级索引必须是唯一索引,保证二级索引的每一个值都是唯一的才可以。 ref 如果你对name加了一个普通的索引,不是唯一索引,你的查询SQL像这样select * from table where name=x,它在执行计划里叫做ref,查询速度也是很快的。 如果你是包含多个列的普通索引的话,那么必须是从索引最左侧开始连续多个列...
ref:显示索引的哪一列被使用了,值的格式是:database.table.column,如果是一个常量,那么ref就是const。比如: ref rows:根据表统计信息及索引使用情况,大致估算出找到所需记录需要读取的行数。 fltered:按表条件过滤的行百分比 extra:包含了一些十分重要但又不适合在其他列显示的信息。包含以下内容:...
而system是const的特例,表中数据只有一条匹配时为system。此时可以用explain extended+show warnings查看执行结果。 explain extended select * from (select * from t_user where user_id = 1) tmp; show warnings; MySQL5.7及以后版本优化后: 3)eq_ref:primary key(主键)或 unique key(唯一键) 索引的所有...
const:表最多有一个匹配行,它将在查询开始时被读取。因为仅有一行,在这行的列值可被优化器剩余部分认为是常数。const表很快,因为它们只读取一次! eq_ref:对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。