首页 > 数据库技术 > 详细

MySql in子句 效率低下优化

时间:2015-08-21 23:11:08      阅读:306      评论:0      收藏:0      [点我收藏+]

MySql in子句 效率低下优化

背景:

 更新一张表中的某些记录值,更新条件来自另一张含有200多万记录的表,效率极其低下,耗时高达几分钟。

update clear_res set candelete=0 where resid in
(
 select distinct resourceid from att_attentionresult where important=0
);

耗时 365s

 

优化后

 update clear_res set candelete=0 where resid in
(
  select resourceid from (
    select distinct resourceid from att_attentionresult where important=0
  ) as tmp
);

耗时 1.41s

 

总结:对于where xxx in 子句效率极其低下问题,经过in的子句外包装一层select xxx from( ... )as tmp 后,极大优化效率。

 

MySql in子句 效率低下优化

原文:http://www.cnblogs.com/hdwang/p/4749152.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!