Explain性能分析(一)——返回的id和select_type

前言

之前写了Explain性能分析概述其中简单介绍了一下Explain的返回值都有那些,和每个返回值的简单介绍。这篇文章主要是针对上一篇的细节上的描述并有sql语句的实例参考。
Explain性能分析(一)
Explain性能分析(二)
Explain性能分析(三)

正文
一、id

select 查询的序列号,包含一组数字,表示查询中执行 select 子句或操作表的顺序。

1、id相同,执行顺序由上到下

在这里插入图片描述

2、 id 不同,id 不同,如果是子查询,id 的序号会递增,id 值越大优先级越高,越先被执行

在这里插入图片描述

3、有相同也有不同
id 如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id 值越大,优先级越高,越先执行衍生 = DERIVED
关注点:id 号每个号码,表示一趟独立的查询。一个 sql 的查询趟数越少越好。

在这里插入图片描述

二、select_type

select_type 代表查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询。

在这里插入图片描述
1、SIMPLE
SIMPLE 代表单表查询;
在这里插入图片描述
2、PRIMARY
查询中若包含任何复杂的子部分,最外层查询则被标记为 Primary。
在这里插入图片描述
3、DERIVED
在 FROM 列表中包含的子查询被标记为 DERIVED(衍生),MySQL 会递归执行这些子查询, 把结果放在临时表里。

4、SUBQUERY
在 SELECT 或 WHERE 列表中包含了子查询。

在这里插入图片描述
5、DEPENDENT SUBQUERY
在 SELECT 或 WHERE 列表中包含了子查询,子查询基于外层。 都是 where 后面的条件,subquery 是单个值,dependent subquery 是一组值。

在这里插入图片描述
6、UNCACHEABLE SUBQUREY
当使用了@@来引用系统变量的时候,不会使用缓存。

在这里插入图片描述
7、UNION
若第二个 SELECT 出现在 UNION 之后,则被标记为 UNION;若 UNION 包含在 FROM 子句的子查询中,外层 SELECT 将被标记为:DERIVED。

在这里插入图片描述
8、UNION RESULT
从 UNION 表获取结果的 SELECT。

结束

不想把篇幅写的太长了,所以就分开来写了,应该算是一个系列的博客了吧!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值