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

 

posted on 2018-01-04 18:07  Jade_K  阅读(128)  评论(0编辑  收藏  举报

导航