Django save with update_fields and POSTGRESQL MVCC



我在互联网上搜索,但我找不到有关这方面的信息,如果我查看 Heroku Devcenter,我有这些信息:

网址: https://devcenter.heroku.com/articles/postgresql-concurrency#disadvantages-of-mvcc

"这就是为什么 UPDATE 实际上会创建一个新行",

因此,如果 Postgresql 实际上为每个更新创建了一个新行,那么使用 update_fields 来提高性能是否有意义?

我将在几天内创建一个小基准来测试使用 update_fields 是否有任何性能改进。

使用update_fields可能会也可能不会提高PostgreSQL更新操作本身的性能。不过,我们可以自信地说,更新字段的子集将提高打包和通过网络发送数据的性能,因为数据更少。

此外,有充分的理由使用与性能无关的update_fields。当您首先只有字段的子集时(如 only()defer() (,它是隐式必需的,并且它可以通过降低覆盖已被另一个进程更改的字段的风险来帮助避免争用条件。

最新更新