Skip to content

事务、会话与重试 ​

MongoDB 支持多文档 ACID 事务,但事务不是默认建模工具。本主题的第一原则是:优先用文档模型(嵌入/单文档原子性)消除事务需求,只有确有必要时才引入多文档事务,并正确处理会话、重试与性能影响。

本章条目 ​

编号条目类型难度一句话摘要
TXN-01多文档事务原理与边界指南高级session/concern 组合、错误重试、跨分片成本、反模式

核心原则 ​

先问「能不能不用事务」

单文档写入天然原子。如果把「需要一起变更的数据」通过合理嵌入放进同一文档,就无需事务。把事务当默认解法是反模式——它带来锁、缓存压力、oplog 开销和重试复杂度。

  • 事务有成本:加锁、占用缓存、增大 oplog、有生命周期超时。
  • 必须处理两类错误:TransientTransactionError(可整体重试)与 UnknownTransactionCommitResult(可重试提交)。
  • 跨分片事务更贵:涉及两阶段提交与更强的协调开销。

相关主题 ​

ICP 备案号待补充 · Gitee 主页