首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL如何处理具有不同事务隔离级别的并行事务?

问PostgreSQL如何处理具有不同事务隔离级别的并行事务?
EN

Database Administration用户
提问于 2021-06-03 21:13:43
回答 1查看 1.2K关注 0票数 3

我有一个典型的Java + Postgres环境(该项目是遗留的)。后端的持久性层混合了声明的隔离级别--其中一些是默认的,即READ,另一些是可重复读取的,还有一些是SERIALIZABLE。

有时,从具有不同隔离级别的并行事务访问相同的DB表。

对于此类交易的交互是否有严格的规则?

我可以或多或少地理解,当所有事务都具有相同的隔离级别时,其中一些事务为了细粒度地避免不受欢迎的读取现象而声明显式锁,而不是上面描述的情况。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-06-04 09:31:24

混合不同的隔离级别是没有问题的,每个事务都将按照规范进行操作。例如,在REPEATABLE READ事务中,您将看到数据库的稳定快照,无论其他事务有哪些隔离级别。

这里最大的例外是SERIALIZABLE。如果要保证可序列化,则所有涉及的事务都必须是可序列化的,以便它们获得所需的谓词锁。如果将隔离级别混合在一起,则不再保证存在等效的串行执行。

如果您仔细想想,这是有意义的:可序列化性是对整个工作负载的约束,而不仅仅是对单个事务的约束。

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

https://dba.stackexchange.com/questions/292743

复制
相关文章

相似问题

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