【SQL高级优化】——第六章explain执行计划之id和select_type属性

一、explain的id属性

   1、id值相同时表示从上向下执行

   2、id值相同被视为一组。

   3、如果是子查询,id值会递增,id值越高,优先级越高

  例:在查询页面写下方的语句运行

EXPLAIN select * from test where policyno in(select policyno from test where brandname='宝马') 
	or brandname in(select brandname from test where useyears=10);

从explain结果上看,这个查询语句先执行id=3的子查询,即select brandname from test where useyears=10;

然后执行id=2select policyno from test where brandname='宝马' ;

最后执行外层id=1的主查询。

二、explain的select_type属性

   1、SIMPLE:简单查询,只要不是子查询和union都属于简单查询

       例:EXPLAIN select sumpremium from  test where policyno='PDAA201321020000021564';

  2、PRIMARY:复杂查询的最外层查询

  3、DERIVED:from从句中的子查询

      例:EXPLAIN select * from (select * from test limit 0,100) t;

4、SUBQUERY:在select或where从句中包的子查询

   例:EXPLAIN select * from test where policyno in(select policyno from test where brandname='宝马') 
    

5、UNION

     例:EXPLAIN select * from test where brandname='宝马'
           union   select * from test where brandname='奔驰';

     这里的PRIMARY代表着组合语句中的前一个查询,UNION代表着后一个查询,UNION RESULT代表着联合查询结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值