首页 > 解决方案 > 我们可以在mongodb中进行并发读写操作吗?

问题描述

我有一个关于 MongoDB 的查询。我阅读了文档,但对此没有清楚的了解,所以在这里问。我有一个集合,我需要在其上执行来自不同来源的 24/7 读写操作。那么查询是我们可以同时对同一个集合进行并发读写操作吗?如果不是,那么有什么替代方案或背后的主要原因是什么。

我有一些 python crons 同时对集合执行 R/W 操作我有一些节点端后端 API 对同一个集合执行 R/W 操作,所以它会导致任何问题吗?目前,这一切都在 MySQL 端执行,但现在根据客户要求,我需要从 MySQL 迁移到 MongoDB。所以请帮我弄清楚这个问题。

标签: mongodb

解决方案


阅读常见问题解答:并发

MongoDB 使用读写锁,允许并发读者共享访问资源,例如数据库或集合。

除了用于读取的共享 (S) 锁定模式和用于写入操作的排他 (X) 锁定模式之外,意向共享 (IS) 和意向排他 (IX) 模式表示使用更细粒度锁读取或写入资源的意向. 当以特定粒度锁定时,所有更高级别都使用意图锁进行锁定。

关于Wired Tiger引擎

对于大多数读写操作,WiredTiger 使用乐观并发控制。WiredTiger 仅在全局、数据库和集合级别使用意图锁。

当前默认的 mongodb 引擎是WiredTiger这样的,如果你使用它 - 你没问题。要检查引擎,请执行此db.serverStatus().storageEngine


推荐阅读