mysql explain select_type

所有类型http://www.cnblogs.com/danhuangpai/p/8475458.html

特别关注 DEPENDENT SUBQUERY ,会严重消耗性能

这个对应的是查询中嵌套子查询,那么如何优化呢

举个例子:

EXPLAIN UPDATE  `tb_gqyjy_appointment_record_info` SET update_time ="2018-11-08 14:57:20" WHERE user_id IN 
(SELECT USER_ID FROM `tb_qy_user_info` WHERE PERSON_NAME LIKE '林%') AND user_id IN ( SELECT user_id FROM 
 `tb_gqyjy_user_info` WHERE point_count <0 )

这里面嵌套了子查询,结果:

下面优化:

EXPLAIN UPDATE `tb_gqyjy_appointment_record_info` t  JOIN ( SELECT USER_ID FROM `tb_qy_user_info` m WHERE PERSON_NAME LIKE '林%' ) r
 ON t.user_id=r.user_id  
 JOIN ( SELECT user_id FROM 
 `tb_gqyjy_user_info` k WHERE k.point_count <0 ) z ON z.user_id=t.user_id SET t.update_time ="2018-11-08 14:57:10"

执行结果:

可以明显看到select_type已经改变了。DERIVED:被驱动的SELECT子查询(子查询位于FROM子句)

数据量越大,效果越明显

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值