4、using sort_union(indexs) 比如当执行下面语句: Sname和sphone列上都有索引,这时执行计划的extra项就会显示using sort_union(i_sname,i_spone),表示索引合并。常伴随着index_merge。 5、using MRR: 一般通过二级索引访问表数据的过程是:先访问二级索引列,找到对应的二级索引数据后就得到对应的主键值,然后拿着...
system:表只有一行记录,相当于系统表(通常此类表单用来作为系统参数等常用且不经常修改的) const:通过索引一次就找到,只匹配一行数据 eq_ref: 唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配 ref:非唯一性索引扫描,返回匹配某个单独值的所有行(用于=、<、> 操作符带索引的列) index_merge: 很多人不...
关于explain的常见type类型就先讲这么多,在介绍的过程中其实也提到了一些sql优化的方案及优化器方面的东西,这些下次有机会再写一篇来具体介绍sql优化。 type其实还有别的类型如fulltext,ref_or_null,index_merge,unique_subquery和index_subquery,这些不太常见这里也先略过,下次有机会再补上。包括explain的extra信息也值...
2、using index condition表示过滤操作下压到存储层,提高性能。3、using temporary表示执行过程中使用了临时表,如order by等操作。4、using sort_union(indexs)表示索引合并,伴随index_merge。5、using MRR表示二级索引访问效率提升,但可能影响排序。6、using join buffer表示使用join buffer缓存数据,...
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > index_subquery > range > index > all 注:(红色标注的表示系统走了索引) system: 表中只有一行记录(等于系统表); const表示通过索引一次就找到了; eq_ref: 维一记录; ...
⑥.index_merge:该联接类型表示使用了索引合并优化方法。在这种情况下,key列包含了使用的索引的清单,key_len包含了使用的索引的最长的关键元素。 ⑦.unique_subquery:该类型替换了下面形式的IN子查询的ref: value IN (SELECT primary_key FROM single_table WHERE some_expr) ...
index_merge表示出现了索引合并优化(包括交集,并集以及交集之间的并集),但不包括跨表和全文索引。这个比较复杂,目前的理解是合并单表的范围索引扫描(如果成本估算比普通的range要更优的话) unique_subquery在in子查询中,就是value in (select…)把形如select unique_key_column的子查询替换。PS:所以不一定in子句中...
id 相同时下面的先执行. select_typeselect_type...type说明 ALL 全数据表扫描 index 全索引表扫描 RANGE 对索引列进行范围查找 INDEX_MERGE 合并索引,使用多个单列索引搜索 REF 根据索引查找一个或多个值 EQ_REF...Manual :: 8.8.1 Optimizing Queries with EXPLAINMysql经典练习题 50 题_original_recipe 的...
7、index_merge index_merge 索引合并(分别两个查询条件的结果,再合并) EXPLAIN select * from myshop.ecs_users where email = 'onlyoneemail.com' OR user_id = 1; 输出 8、unique_subquery unique_subquery IN子查询的结果由聚族索引或唯一索引覆盖。