当涉及 Mongo 会话时更改 MongoDB 隔离级别

Sel*_*amy 4 transactions isolation-level mongodb

Whats是MongoDB4.0使用事务时的默认隔离级别。

一份文档说 READ UNCOMMITTED 是默认隔离级别。https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/

另一篇文档说快照是使用事务时的默认隔离级别。 https://www.percona.com/blog/2018/06/25/mongodb-transactions-your-very-first-transaction-with-mongodb-4-0/

哪一个是正确的?可以改变吗?

kev*_*adi 6

MongoDB 允许客户端根据写关注、读关注和会话的使用组合来确定所需的隔离级别。

对于事务(需要使用会话),默认的隔离是快照。

根据读隔离、一致性和新近度,未提交读是使用会话的默认隔离级别。

可以自定义事务的读写关注点。看:

除非您有需要特定隔离级别的特定用例,否则最好将此设置保留为默认值。

  • 请注意,`snapshot` 隔离是使用 MongoDB 事务可以实现的*最佳*隔离,**但不是使用默认设置!** 要实现它,您必须设置 `readConcern=snapshot` 和 `writeConcern=majority ` *在连接字符串/会话/事务上*(但不在数据库/集合/操作上,因为在事务数据库/集合/操作下关注设置将被忽略)。请参阅 https://jepsen.io/analysiss/mongodb-4.2.6 (3认同)