我们可以在mongodb中进行并发读写操作吗?



我有关于MongoDB的查询。我读了文档,但没有得到一个明确的想法,所以问这里。我有一个集合,我需要从不同的来源执行24/7的读写操作。因此,查询是,我们可以同时对同一个集合执行并发读写操作吗?如果没有,那么有什么替代方案或者背后的主要原因是什么?

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

阅读常见问题:并发性

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

除了读的共享(S)锁模式和排他锁模式(X)写操作、意图共享(IS)和意图的锁定模式独占(IX)模式表示读或写资源的意图使用更细粒度的锁。当锁定在特定粒度时,所有更高级别的锁都使用意图锁。

关于Wired Tiger引擎

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

当前默认的mongodb引擎是WiredTiger,所以如果你使用它-你是好的。要检查引擎,请执行db.serverStatus().storageEngine

最新更新