using intersect:表示使用and的各个索引的条件时,该信息表示是从处理结果获取交集 using union:表示使用or连接各个使用索引的条件时,该信息表示从处理结果获取并集 using sort_union和using sort_intersection:与前面两个对应的类似,只是他们是出现在用and和or查询信息量大时,先查询主键,然后进行排序合并后,才能读取记录...
using sort_union,using_union,usingintersect,using sort_intersection : using intersect :表示使用and的各个索引的条件时,该信息表示是从处理结果获取交集 using union :表示使用or连接各个使用索引的条件时,该信息表示从处理结果获取并集 using sort_union 和 usingsort_intersection :与前面两个对应的类似,只是他们是...
explainselect(selectactor_idfromactorlimit1)fromfilm; 下面是一个简单的union查询的explain结果: explainselectfirst_namefromactorwhereactor_id=1unionselectfirst_namefromactorwhereactor_id=2; 注意最后一行,union的结果总是放在一个匿名临时表中,临时表并不在原SQL中出现,因此它的id列是null。 select_type列 ...
using sort_union和using sort_intersection:与前面两个对应的类似,只是他们是出现在用and和or查询信息量大时,先查询主键,然后进行排序合并后,才能读取记录并返回。 H:using temporary:表示使用了临时表存储中间结果。临时表可以是内存临时表和磁盘临时表,执行计划中看不出来,需要查看status变量,used_tmp_table, used_...
Explain命令(关键字) explain简单示例 mysql>explain select * from t_user; 在查询中的每个”表”会输出一行,这里的“表”的意义非常广泛,不仅仅是数据库表,还可以是子查询、一个union 结果等。 explain结果列说明 【id列】 id列是一个有顺序的编号,是查询的顺序号,有几个 select 就显示几行。id的顺序是按...
explain select * from user_info left join staff on user_info.age = staff.age where staff.id is null; 执行计划的结果如下,符合预期 Using intersect、Using union、Using sort_union 我们在介绍单表查询的Access Method访问方法时,介绍过一种同时使用多个索引的访问方法——index merge。在该访问方法下,...
dependent subquery:和DEPENDENT UNION相对UNION一样 table 对应的行正在访问哪个表,表名或者别名。 关联优化器会为查询选择关联顺序,左侧深度优先 当from中有子查询的时候,表名是derivedN的形式,N指向子查询,也就是explain结果中的下一列 当有union result的时候,表名是union 1,2等的形式,1,2表示参与union的query...
EXPLAINSELECT1; 1. 6.2. Using where 当我们使用全表扫描来执行对某个表的查询,并且该语句的WHERE 子句中有针对该表的搜索条件时,在Extra 列中会提示上述额外信息。 EXPLAINSELECT*FROMs1WHEREcommon_field='a';
Explain extended看起来和正常的explain行为一样,但它会告诉服务器“逆向编译”执行计划为一个select语句。可以通过紧接其后运行showwarnings看到这个生成的语句。这个语句直接来自执行计划,而不是原SQL语句,到这点上已经变成一个数据结构。大部分场景下,它都是优化过的,跟原语句不相同,可以学习查询优化器到底是如何转化...
1.EXPLAIN tbl_name 2.EXPLAIN [EXTENDED] SELECT select_options 为了更好的说明它,我们需要建两张表,下面的语句用于创建一张测试用的订单表: CREATE TABLE `t_order` ( `order_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '订单ID', ...