gpt4 book ai didi

postgresql - Postgres 批量收集和 Forall 删除

转载 作者:行者123 更新时间:2023-11-29 13:30:57 25 4
gpt4 key购买 nike

目前在 Oracle 中,我每月运行一个程序来删除一些数据。出于 Oracle 中的性能原因,我使用了 BULK COLLECTFORALL .. DELETE 来执行删除。

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

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

最佳答案

使用 WHERE EXISTS 而不是 WHERE IN

否则,只要 sample 不是任何外键引用的目标,就应该没问题。如果是,您将需要引用端的索引。

对于具有 ON DELETE CASCADE 的 FK 上的真正大删除,最好执行连接以批量删除引用端,然后删除引用端。这有助于防止数百万个单独的 DELETE 语句必须运行以进行级联删除。

关于postgresql - Postgres 批量收集和 Forall 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23520178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com