重点解释 子查询的查询方式依赖于外面的查询结果.用这个例子就是,先进行子查询外部的查询,得到一个结果集,.然后这个结果的每一行在跟select子查询的结果集进行匹配,也就是说,外部结果集的每一行都要关联内部结果集一次 (5)DERIVED/MATERIALIZED DERIVED:被驱动的SELECT子查询(子查询位于FROM子句) 例子 select aa fro...
在包含 UNION 或者 UNION ALL 的大查询中,如果各个小查询都依赖于外层查询的话,那除了最左边的那个小查询之外,其余的小查询的 select_type 的值就是 DEPENDENT UNION # DERIVED 对于采用物化的方式执行的包含派生表的查询,该派生表对应的子查询的 select_type 就是 DERIVED # MATERIALIZED 当查询优化器在执行包...
Primary 最外层的select Union Union中第二个或之后的select语句 Dependent union Union中第二个或之后的select语句取决于外面的查询 Union result Union的结果 Subquery 子查询的第一个select Dependent subquery 子查询的第一个select,取决于外面的查询 Derived 衍生表(from子句中的查询) Materialized 物化子查询 Uncach...
EXPLAIN SELECT u.`name` FROM ((SELECT s.id,s.`name` FROM `tb_student` s) UNION (SELECT t.id,t.`name` FROM tb_teacher t)) AS u; 代表是id为2和3的select查询的结果进行union操作。 MATERIALIZED MATERIALIZED表示物化子查询,子查询来自视图。 三、table 表示输出结果集的表的表名,并不一定是真...
EXPLAINSELECTu.`name`FROM((SELECTs.id,s.`name`FROM`tb_student`s)UNION(SELECTt.id,t.`name`FROMtb_teacher t))ASu; <union2,3>代表是id为2和3的select查询的结果进行union操作。 MATERIALIZED MATERIALIZED表示物化子查询,子查询来自视图。 三、table ...
DEPENDENT UNION:union操作中,处于内层的select 查询,但内层的SELECT语句与外层的SELECT语句有依赖关系。 UNION RESULT:union操作的结果,id值通常为NULL 。 (5)UNCACHEABLE SUBQUERY/UNCACHEABLE UNION MATERIALIZED:被物化的子查询 UNCACHEABLE SUBQUERY:对于外层的主表,子查询不可被物化,每次都需要计算(耗时操作)。
DERIVED:被驱动的SELECT子查询(子查询位于FROM子句) 例子 select aa from (select * from a) b; MATERIALIZED:被物化的子查询 (6)UNCACHEABLE SUBQUERY/UNCACHEABLE UNION UNCACHEABLE SUBQUERY:对于外层的主表,子查询不可被物化,每次都需要计算(耗时操作) ...
dependent union: UNION中的第二个或后面的SELECT语句,取决于外面的查询 materialized: 物化子查询 uncacheable subquery: 子查询,结果无法缓存,必须针对外部查询的每一行重新评估 uncacheable union: 属于UNCACHEABLE SUBQUERY的第二个或后面的查询 select_type细节比较多,所以单独一节来介绍,具体请查看 explain之select...
这个结果无法直观的看出来,可以用FORMAT=JSON命令查看materialized_from_subquery字段。table 显示表名,从上述的一些图中可以观察到UNION_RESULT和DERIVED显示的表名都有一些自己的命名规则。比如UNION_RESULT产生的是<unionM,N>,DERIVED产生的是。partitions 数据的分区信息,没有分区忽略就好了。type 关联类型,决定...
`MATERIALIZED`** - 当子查询被物化并与外层查询连接时,标记为 `MATERIALIZED`。`UNCACHEABLE SUBQUERY`** & **`UNCACHEABLE UNION`** - 这些标记相对不常用,用于特定场景。`type`** - 描述表访问方法,关键在于查询优化器如何处理表数据。`system`** - 表中唯一记录且引擎数据精确时,使用此...