在大型数据库缓存中删除或标记为已删除?

时间:2014-01-22 08:26:21

标签: java database hibernate postgresql

我有一个包含数百万条目的大型数据库缓存。缓存每天重建两次。我有时想从db中删除一些缓存条目。或者至少我想阻止它们出现在某些结果中。

您是否会更新条目,例如boolean deleted = true,以便结果省略此条目?或者你会删除该行吗?在性能方面哪个更好,当然由于缓存无论如何都会在一天内重建。

1 个答案:

答案 0 :(得分:2)

DELETE和UPDATE在PostgreSQL中具有相似的成本和类似的速度(取决于你是否更新索引或非索引列),但在VACUUM之后,已删除记录使用的空间可以重复使用,因此数据库不应该吹得太快。所以通常DELETE是首选 - 但它取决于更多因素。