Postgresql Postgres批量收集和Forall删除

Postgresql Postgres批量收集和Forall删除,postgresql,Postgresql,目前在Oracle中,我每月运行一个过程来删除一些数据。出于Oracle中的性能原因,我使用了批量收集和For all。。DELETE执行删除操作 有人知道在Postgres中是否有类似的内容吗?如果我使用以下方法删除大量数据,是否需要关注性能 DELETE FROM sample WHERE id IN (SELECT id FROM test); 在存在的位置使用而不是在中的位置使用 否则,只要样本不是任何外键引用的目标,就可以。如果是,则在引用端需要索引 对于在FKs上进行的真正大的删除

目前在Oracle中,我每月运行一个过程来删除一些数据。出于Oracle中的性能原因,我使用了
批量收集
For all。。DELETE
执行删除操作

有人知道在
Postgres
中是否有类似的内容吗?如果我使用以下方法删除大量数据,是否需要关注性能

DELETE FROM sample WHERE id IN (SELECT id FROM test);

在存在的位置使用
而不是
在中的位置使用

否则,只要样本不是任何外键引用的目标,就可以。如果是,则在引用端需要索引


对于在FKs上进行的真正大的删除,在删除级联上执行
,最好执行一次联接,以批量删除引用方,然后删除引用方。这有助于防止数以百万计的
DELETE
语句必须运行级联删除。

使用
WHERE-EXISTS
而不是
WHERE-IN
。否则,只要
sample
不是任何外键引用的目标,就可以了;如果是的话,您需要在引用端建立索引。这似乎很好。谢谢