文章浏览 复制本页面地址

MySQL的EXPLAIN的SELECT TYPE 的类型

查询中每个select子句的类型,提供了各种表示table列引用的使用方式的类型。

(1)SIMPLE

简单的SELECT语句(不包括UNION操作或子查询操作)

123137 ESrd 1383356 MySQL的EXPLAIN的SELECT TYPE 的类型

 

(2)PRIMARY/UNION

PRIMARY:查询中最外层的SELECT(如两表做UNION或者存在子查询的外层的表操作为PRIMARY,内层的操作为UNION)

123316 ZczS 1383356 MySQL的EXPLAIN的SELECT TYPE 的类型

UNION:UNION操作中,查询中处于内层的SELECT(内层的SELECT语句与外层的SELECT语句没有依赖关系)

 

(3)DEPENDENT UNION/UNIOIN RESULT

DEPENDENT UNION:UNION操作中,查询中处于内层的SELECT(内层的SELECT语句与外层的SELECT语句有依赖关系)

UNION RESULT:UNION操作的结果,id值通常为NULL

124135 DqRU 1383356 MySQL的EXPLAIN的SELECT TYPE 的类型

 

(4)SUBQUERY/DEPENDENT SUBQUERY

SUBQUERY:子查询中首个SELECT(如果有多个子查询存在):

114426 990H 1383356 MySQL的EXPLAIN的SELECT TYPE 的类型

 

DEPENDENT SUBQUERY:子查询中首个SELECT,但依赖于外层的表(如果有多个子查询存在)

114223 4IXo 1383356 MySQL的EXPLAIN的SELECT TYPE 的类型

 

(5)DERIVED/MATERIALIZED

DERIVED:被驱动的SELECT子查询(子查询位于FROM子句)

115617 FGUE 1383356 MySQL的EXPLAIN的SELECT TYPE 的类型

MATERIALIZED:被物化的子查询

 

(6)UNCACHEABLE SUBQUERY/UNCACHEABLE UNION

UNCACHEABLE SUBQUERY:对于外层的主表,子查询不可被物化,每次都需要计算(耗时操作)

UNCACHEABLE UNION:UNION操作中,内层的不可被物化的子查询(类似于UNCACHEABLE SUBQUERY)

标签:
上一篇:
下一篇: