一. 执行计划分析(EXPLAIN)
1.id
每个SELECT语句都会自动分配的一个唯一标识符。
2.select_type
- simple:简单select查询,不需要union操作或者不包含子查询。
- primary:一个需要union操作或者含有子查询的select。
- union:union连接的两个select查询。
- dependent union: 与union一样,出现在union 或union all语句中,但是这个查询要受到外部查询的影响。
- union result: union的结果集,在union语句中,因为它不需要参与查询,所以id字段为null。
- subquery:除了from字句中包含的子查询外,其他地方出现的子查询都可能是subquery。
- dependent subquery:和dependent union类似,表示这个subquery的查询要受到外部表查询的影响。
- derived:from字句中出现的子查询,也叫做派生表。
3.table
显示查询的表名,有如下几种情况:
- 如果查询使用了别名,那么这里显示的是别名。
- 如果不涉及对数据表的操作,那么显示为null。
- <derivedN>:临时表, N就是执行计划中的id,表示结果来自于这个查询。
- <unionM,N>:临时表,结果来自于执行计划id为M,N的结果集。