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 后,极大优化效率。
https://www.cnblogs.com/hdwang/p/4749152.html
原文地址:https://www.cnblogs.com/findumars/p/10236488.html
时间: 2024-10-12 07:31:48