我在互联网上搜索,但是找不到有关该信息的信息,如果我查看Heroku Devcenter,我会得到以下信息:
url:https://devcenter.heroku.com/articles/postgresql-concurrency#disadvantages-of-mvcc
“这就是UPDATE实际上创建新行的原因”,
因此,如果Postgresql实际上为每次更新都创建了一个新行,那么使用update_fields来提高性能是否有意义?
几天后,我将创建一个基准测试来测试使用update_fields是否有任何性能改进。
答案 0 :(得分:0)
使用update_fields
可能会或可能不会增加PostgreSQL更新操作本身的性能。不过,我们可以放心地说,更新字段的子集将提高打包和通过网络发送数据的性能,因为它的数量更少。
此外,使用update_fields
的充分理由与性能没有任何关系。首先只包含一部分字段时(与only()
和defer()
一样,它是隐含的),它可以通过降低覆盖字段的风险来帮助避免竞争情况已被另一个过程更改。