MySQL性能优化(四)--Explain执行计划与show Profile分析

  MySQL的Explain执行计划可以用来对Sql语句进行分析,是否进行全表扫描,是否用了索引,或者是sql语句先后执行计划,有没有用临时表等等,由此来进行Sql优化,而show Profile和Explain一样都是用来查看Sql语句分析的,但是形式不一样,show Profile用来分析当前会话语句执行的资源消耗情况,能清晰的知道sql执行过程,以及过程中消耗的时间。

那么咱们先来说一下Explain执行计划

这是执行Explain命令后显示的信息,那么不熟悉的就会对此比较陌生,下面来一一讲解每个列的说明。

1.Explain各字段含义

1.1 id列

id列的编号是select的序列号,表示查询中执行select子句或操作表的顺序

id序列数不同,如果是子查询的话,则id值越大优先级越高,越先被执行

id序列数相同,则执行顺序由上到下

id既有相同又有不同的,视为相同的一组,执行顺序由上到下,不同的id序列数越大,优先值越高

1.2 select_type列

select_type是查询类型,说明查询的种类

1.SIMPLE:简单查询,查询不包含子查询和UNION。

2.PRIMARY:复杂查询包含含子部分,最外层查询则被标记为PRIMARY

3.DERIVED(form型子查询):包含在from子句中的子查询。MySQL会将结果存放在一个临时表中,也称为派生表.

4.UNION:在UNION中第二个随后的select

5.UNION RESULT:从UNION临时表检索结果的select(如果无需要尽量少写union,因为使用的是临时表,所以不能进行索引优化)

6.DEPENDENT UNION:UNION语句中的第二个SELECT,依赖于外部子查询  (暂时没有写到出现DEPENDENT UNION的sql所以没有示例)

7.SUBQUERY(非form子查询):包含在select中的子查询。

8.DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的子查询

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值