MySQL更新优化
在MySQL更新数据的时候要避免子查询
以前更新表数据SQL,包含子查询,这样在MySQL执行中,如果数据多的话执行会十分的缓慢,而且不是一般的慢
UPDATE oa_asset oa SET oa.asset_status=3 WHERE oa.asset_id IN( SELECT oac.asset_id FROM oa_assets_clear oac WHERE oac.dispose_type=28 AND oac.check_status=2 AND oac.is_post=1 AND oac.is_del=0 );
优化如下:
UPDATE oa_asset oa INNER JOIN (SELECT oac.asset_id FROM oa_assets_clear oac WHERE oac.dispose_type=28 AND oac.check_status=2 AND oac.is_post=1 AND oac.is_del=0) ob ON oa.asset_id=ob.asset_id SET oa.asset_status=3
基本上秒执行成功
参考地址
http://blog.csdn.net/dagailv/article/details/72803203
作者:王家大人
出处:http://wms01.cnblogs.com
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。