③. id字段
- ①. id列的编号是select的序列号,有几个select就有几个id,下面将分析三种情况
- ②. id相同,执行顺序由上到下
③. id不同,如果子查询,id的序号递增,id值越大优先级越高,越先被执行
④. id相同又不同,注意:id为NULL最后执行
④. select_type、table字段
- ①. select_type 表示对应行是简单还是复杂的查询。
- ②. simple:简单查询。查询不包含子查询和union
mysql> explain select * from film where id = 2;
③. primary:复杂查询中最外层的select
④. subquery:包含在select中的子查询(不在from子句中)
(在select后面from前面的叫子查询,在from后面的叫衍生查询)
⑤. derived:包含在 from 子句中的子查询。MySQL会将结果存放在一个临时表中,也称为派生表(derived的英文含 义)
# 关闭mysql5.7新特性对衍生表的合并优化 mysql> set session optimizer_switch='derived_merge=off'; mysql> explain select (select 1 from actor where id = 1) from (select * from film where id = 1) der; #还原默认配置 mysql> set session optimizer_switch='derived_merge=on';
- ⑥. UNION:若第二个SELECT出现在UNION之后,则别标记为UNION
- ⑦. UNION RESULT:从UNION表获取结果的SELECT
- ⑧. table:显示这一行的数据是关于哪张表