最近见到一条开发人员写的UPDATE语句, 觉得没什么不对, 可又觉得有地方不对, 因为性能低下.
UPDATE A SET
(COL2, COL3) = (SELECT COL1,'T'
FROM B WHERE B.COL1=A.COL1)
WHERE EXISTS
(SELECT B.COL1 FROM B WHERE B.COL1=A.COL1)
也就更新几十万条记录, 没这么慢的啊. 最后发现这个SQL语句可以简化为如下.
UPDATE A SET COL2=COL1, COL3='T'
WHERE EXISTS
(SELECT B.COL1 FROM B WHERE B.COL1=A.COL1)
说明还有很多可以提高的地方.值