首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用Postgres中的MVCC

禁用Postgres中的MVCC
EN

Stack Overflow用户
提问于 2021-12-15 15:03:06
回答 2查看 405关注 0票数 0

我在MSSQL方面有几十年的经验,但没有使用Postgres及其MVCC风格的并发控制。

在MSSQL中,如果我有一个非常大的数据集是只读的,我会将数据库设置为只读(为安全起见),并使用事务隔离级别读未提交,这应该避免锁定争用,数据集无论如何都不需要锁争用。

在Postgres,有类似的吗?某种将数据库设置为只读并确保PG完全安全而不使用MVCC的方法,只需读取而不复制行?因为MVCC似乎有一些相当大的开销,因此对于非常大的被动数据集的多个读者来说,这似乎是很昂贵的。

编辑:评论说,我误解了,只有在写作时才会复制,而不是像我想象的那样阅读。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-17 18:00:03

"MVCC“代表“多版本并发控制”。同一表行的多个版本仅由写活动(主要是UPDATE)生成。

如果您的数据库是只读的--强制的或自愿的,出于这个问题的目的--那么就不可能有一个行的多个版本。这个问题是没有意义的。

票数 3
EN

Stack Overflow用户

发布于 2021-12-15 16:24:56

不,没有办法这样做,也没有理由这样做。

因为PostgreSQL,作者永远不会阻止读取器,反之亦然,这正是因为您想要禁用它的MVCC实现。因此,没有必要用令人讨厌的拐杖来读取未提交的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70365906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档