gpt4 book ai didi

postgresql - 在 PostgreSQL 中混合隔离级别

转载 作者:行者123 更新时间:2023-11-29 11:37:00 25 4
gpt4 key购买 nike

如果任何其他 session 使用例如自动提交还是 READ COMMITED 隔离级别?

换句话说,当从多个进程/线程(或其他任何需要注意的事项)访问数据库时,混合隔离级别(和自动提交)是否有任何危险?

请注意,我知道“普通”问题,例如要求重试的 SERIALIZABLE 事务等。我要求的是混合不同隔离级别时可能发生的任何不明显的问题。

编辑:

来自 http://www.postgresql.org/docs/9.4/static/transaction-iso.html :

Consistent use of Serializable transactions can simplify development. The guarantee that any set of concurrent serializable transactions will have the same effect as if they were run one at a time means that if you can demonstrate that a single transaction, as written, will do the right thing when run by itself, you can have confidence that it will do the right thing in any mix of serializable transactions, even without any information about what those other transactions might do.

这可能表明混合隔离级别不是一个好主意。另一方面,它只是说一致使用 SERIALIZABLE 级别是好的,而不是混合隔离级别是坏的。

最佳答案

Postgres 维基 https://wiki.postgresql.org/wiki/Serializable#PostgreSQL_Implementation说明这一点

Any transaction which is run at a transaction isolation level other than SERIALIZABLE will not be affected by SSI. If you want to enforce business rules through SSI, all transactions should be run at the SERIALIZABLE transaction isolation level, and that should probably be set as the default.

因此,SERIALIZABLE 保证在混合隔离级别时不会成立。

关于postgresql - 在 PostgreSQL 中混合隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com