开发者学堂课程【MySQL 高级应用 - 索引和锁:explain 之 select-type 和 table 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/598/detail/8600
explain 之 select-type 和 table 介绍
目录:
一. select-type 有哪些
二. select-type 查询类型
一. select-type 有哪些
1.SIMPLE
2.PRIMARY
3.SUBQUERY
4.DERIUED
5.UNION
6.UNION RESULT
二. select-type 查询类型
主要是区别普通查询\联合查询\子查询等的复杂查询
1.SIMPLE [简单的 select 查询,查询中不包含子查询或者 union ]
2.PRIMARY [查询中若包含人和复杂的子部分,最外层查询则被标记为 primary ]
3.SUBQUERY [在 select 或 where 列表中包含子查询]
4.DERIUED [在 from 列表中包含的子查询被标记为 derived 衍生, MySQL 会递归执行这些子查询,把结果放在临时表里(临时表有时候是会增加系统负担,但是有时候不得不用。因为两个变量做交换,必须要有一个临时变量拿他做交换。).]
5.UNION [若第二个 select 出现在 union 之后,则被标记为 union ;若 union 包含在 from 子句的子查询中,外层 select 被标记为 derived ]
6.UNION RESULT [从 union 表获取结果的 select (两种 union 结果的合并)]
mysq1> se leet " fro Вtb1_ enp a left join tb1_ dept bon a . deptId b . id
union
se lect " fro В tbl _ emp aright , join tb1_ dept bon a . de ptld = b . id :
I nano Ideptld Iid IdeptName IIoc Add I
DERIVED
NS NtLL NtLL
NTLL NUu . FDmysq !> se lect " fro В tb . a left join tb _ dept bon a . dept ld = b . id union se lect " from tb1
евр a right Join tb1_ dept on aadeptld = b . id
mysq1> explain se lect " fron tb1_ emp aleft Join tb1_ dept bon a . deptld = b . id union se lect " r
Г on tbl _ omp a right join tb1_ dept bon a . dept ld b . id :
idIse lect _ type Lable ype I possible _ keys I key i key _ len I ref
l ro В sIExtra
IPRIMARY ALL INULL I NULL I NTLL I NULL DERIVED
l PRIMARY i eq _ ref I PRIMARY I PRIMARY I db0629.a. de
ptId
2UNION IALL I NLL I krLL I NL Ц. INUL
UNION Iref I fk _ dept _ Id I k _ dept _ d Is I db0629.b. id
NELL RESULT < unionl .2> IALL I NLL INIL I NULL I NLLL