MySQL系列-优化之explain执行计划详解

1.id介绍

这个id不是主键的意思,他是用来标识select查询的序列号,包含一组数字,表示查询中执行select子句或者操作表的顺序。

会出现以下情况:

id相同:按从上到下顺序执行

id不同:id值越大,优先级越高,越先被执行

id相同不同的同时存在:优先执行id值大的,如果id值相同,则按从上到下的顺序执行

id为null表示是用来合并结果集的,在sql使用union关键字合并结果集就会出现他。

2.select_type介绍

顾名思义,表示查询的类型

类型 说明
simple 简单子查询,不包含子查询和union
primary 包含union或者子查询,最外层的部分标记为primary
subquery 一般子查询中的子查询被标记为subquery,也就是位于select列表中的查询
derived 派生表——该临时表是从子查询派生出来的,位于form中的子查询
union 位于union中第二个及其以后的子查询被标记为union,第一个就被标记为primary如果是union位于from中则标记为derived
union result 用来从匿名临时表里检索结果的select被标记为union result
dependent union 顾名思义,首先需要满足UNION的条件,及UNION中第二个以及后面的SELECT语句,同时该语句依赖外部的查询
subquery 子查询中第一个SELECT语句
dependent subquery 和DEPENDENT UNION相对UNION一样

3.table介绍

对应行正在访问哪一个表,表名或者别名。也有可能是临时表等等,或者是union合并结果集。

  • 表名是derivedN的形式,表示使用了id为N的查询产生的衍生表
  • 当有union result的时候,表名是union n1,n2等的形式,n1,n2表示参与union的id

注意:MySQL对待这些表和普通表一样,但是这些“临时表”是没有任何索引的。

4.举例说明

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值