在PostgreSql中,批量更新或删除效率更高?

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

在我的Java Web应用程序中,我需要从表中删除一组记录。我有2个选择:1.直接从应用程序运行删除查询2.更新所有记录中的值以将其从用户视图中隐藏,并让守护程序线程运行并在后台清理这些记录。记录数范围可以从10到100000。我的目的是了解在不增加服务器负载的情况下进行此操作的有效且安全的方法。

java database postgresql postgresql-9.4
2个回答
0
投票

在引擎盖下,实际上是UPDATE

  1. 标记已更新的行已删除
  2. 插入新行,它是上面1中的行的副本,但反映了更新的列

因此,由于UPDATE操作涉及两次写入,因此DELETE实际上更有效,因为它仅使用一次写入来标记已删除的行(由于多版本并发控制(MVCC)框架)


0
投票

如果将来需要这些记录,可以将这些记录移动到另一个表中。这种方法的优点是:-1.您没有使当前表超载,因此该表的所有操作将很快。2.您将来可以使用这些记录。

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