如何优化此SQL Delete语句以提高速度

问题描述 投票:0回答:1

[运行此SQL delete的方法比此方法更快:

DELETE FROM TABLE 
WHERE TABLE.key NOT IN (SELECT DISTINCT(MAIN_TABLE.key) FROM MAIN_TABLE) 
sql amazon-redshift sql-delete
1个回答
0
投票

您可以更喜欢使用not exists

delete from TABLE t 
 where not exists ( select 0 from MAIN_TABLE m where m.key = t.key )

从性能的角度来看,最好是比not in更好。

我认为是因为

NOT IN返回true 对于每个在子查询中找到不匹配的值,而

NOT EXISTS仅在子查询中发现不匹配的行时才处于活动状态。

© www.soinside.com 2019 - 2024. All rights reserved.