询中每个select子句的类型,提供了各种表示table列引用的使用方式的类型。
(1)SIMPLE
简单的SELECT语句(不包括UNION操作或子查询操作)
(2)PRIMARY/UNION
PRIMARY:查询中最外层的SELECT(如两表做UNION或者存在子查询的外层的表操作为PRIMARY,内层的操作为UNION)
UNION:UNION操作中,查询中处于内层的SELECT(内层的SELECT语句与外层的SELECT语句没有依赖关系)
(3)DEPENDENT UNION/UNIOIN RESULT
DEPENDENT UNION:UNION操作中,查询中处于内层的SELECT(内层的SELECT语句与外层的SELECT语句有依赖关系)
UNION RESULT:UNION操作的结果,id值通常为NULL
(4)SUBQUERY/DEPENDENT SUBQUERY
SUBQUERY:子查询中首个SELECT(如果有多个子查询存在):
DEPENDENT SUBQUERY:子查询中首个SELECT,但依赖于外层的表(如果有多个子查询存在)
(5)DERIVED/MATERIALIZED
DERIVED:被驱动的SELECT子查询(子查询位于FROM子句)
MATERIALIZED:被物化的子查询
(6)UNCACHEABLE SUBQUERY/UNCACHEABLE UNION
UNCACHEABLE SUBQUERY:对于外层的主表,子查询不可被物化,每次都需要计算(耗时操作)
UNCACHEABLE UNION:UNION操作中,内层的不可被物化的子查询(类似于UNCACHEABLE SUBQUERY)
SQL查询类型详解

本文详细介绍了SQL查询中的各种类型,包括简单的SELECT语句、不同层级的UNION操作、子查询及其依赖关系、派生表及物化视图等,帮助读者深入理解SQL执行计划。






1235

被折叠的 条评论
为什么被折叠?



