You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB WiredTiger锁级别咨询:文档级锁及事务锁相关疑问

WiredTiger锁机制疑问解答

问题1:在WiredTiger中,执行插入、删除、更新操作时是否仅锁定相关文档?

不是的。WiredTiger确实采用文档级排他锁来控制单个文档的并发访问,但同时会额外持有数据库级和集合级的意向排他锁(IX锁)。这种IX锁是一种“声明性”的锁,它不会阻止其他操作对同集合/数据库加意向锁,只是用来防止其他操作对整个数据库或集合加排他锁(X锁)。

简单来说:核心的并发控制靠文档级锁——只要操作的不是同一个文档,多个写操作就能在同集合里并行执行;而数据库/集合的IX锁是用来避免“整个库/集合被锁死”的场景,不会影响正常的文档级并发。

问题2:事务场景下,若一个事务涉及2个集合并分别更新1个文档,是否仅锁定这2个文档而不锁定集合?

同样不是仅锁定两个文档。这个事务会同时持有:

  • 两个目标集合所属数据库的IX锁
  • 两个目标集合的IX锁
  • 两个被更新文档的排他锁

但注意:集合的IX锁不会限制其他操作访问集合内的其他文档,它只是防止其他操作对整个集合加排他锁。真正会阻止并发的只有那两个被更新文档的排他锁——其他事务只要不碰这两个文档,依然可以正常操作两个集合里的其他数据。

内容的提问来源于stack exchange,提问作者Lion.k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:25:29