MYSQL性能分析之explain 之select_type字段案例分析


1. SIMPLE
表示不需要UNION操作或者不包含子查询的简单select查询,有连接查询时,外层的查询是simple,且只有一个

2. PRIMARY
一个需求union操作或者含有子查询的select,位于最外层的查询,select_type即为primary,且只有一个

3. union
union连接的两个select查询

4. union result
包含union的结果集,在union和union all语句中,因为它不需要参与查询,所以id字段为null,如下最后结果集,部分sql版本已经省略此步骤

5. dependent union
出现在union和union all 语句中,但是这个查询要受到外部查询的影响

6. dependent subquery
与dependent union 类似,表示外部查询依赖这个子查询

7. subquery
除了from字名中包含的子查询外,其他地方出现的子查询都有可能是subquery

8. derived
from子句中出现的子查询,也叫做派生表,其他数据库中可能叫做内联视图或嵌套select,部分sql高版本已经省略此步骤

9. materialization
物化通过将子查询结果任务一个临时表来加快查询执行速度,正常来说是常驻内存,下次查询会再次引用临时表