在我的Java Web应用程序中,我需要从表中删除一组记录。我有2个选择:
- 直接从应用程序中运行删除查询
- 更新所有记录中的值以将其从用户视图中隐藏,并让守护程序线程运行并在后台清理这些记录。
记录数范围可以从10到100000。 我的目的是了解在不增加服务器负载的情况下进行此操作的有效且安全的方法。
P.S .:随时分享任何其他合适的方法。
在我的Java Web应用程序中,我需要从表中删除一组记录。我有2个选择:
记录数范围可以从10到100000。 我的目的是了解在不增加服务器负载的情况下进行此操作的有效且安全的方法。
P.S .:随时分享任何其他合适的方法。
在后台,UPDATE
实际上是:
因此,由于UPDATE
操作涉及两次写入,因此DELETE
实际上更有效,因为它仅使用一次写入来标记已删除的行(由于多版本并发控制(MVCC) )框架)
披露:我为EnterpriseDB (EDB)工作
,与删除命令相比,更新命令花费更多的时间。在更新中,您实际上是在复制数据,而旧版本的数据只是从视图中隐藏了。
,如果将来需要这些记录,可以将这些记录移到另一个表中。
此方法的优点是:-
更新
由于您不需要记录,并且由于更新更昂贵,因此删除,您应该批量发出删除调用,例如说500至5000条记录。