1

我知道当我UPDATE在 Pg 中有一行时,该行会被重写,而当新行被激活时,旧行会被停用。我知道这是由于 MVCC 层是如何实现的。

那么UPDATEover的优势是什么DELETE ... INSERT?关于Postgresql中的UPDATE和之间的关系,还有什么要说的吗?DELETE我找不到任何谈论这个或邮件列表帖子的文档。显然,如果有的话,它们会运行不同的用户触发器,但是在幕后会发生什么来给他们不同的性能配置文件?

4

1 回答 1

4

DELETE 将触发外键约束,您可能会违反它们。其他触发器也可能是一个问题。

如果您更改FILLFACTOR,您还可以为数据库提供执行HOT 更新的选项。这是与原始记录所在的同一内存块内的更新。与正常更新相比,热更新可以更快并且产生更少的开销(真空)。

于 2010-08-11T15:31:51.767 回答