Mongodb ISOLATION的效率如何

时间:2013-09-10 07:53:13

标签: mongodb mongo-java

我遇到一个Mongo DB维护全局写锁的文档,想知道从SQL数据库支持“ACID”的“ISOLATION”效率。

1 个答案:

答案 0 :(得分:4)

  

我遇到了Mongo DB维护全局写锁定的文档

这是旧的信息,MongoDB现在处于数据库级锁定,可能在未来的集合中,但是,它已被放回到支持并发。

  

想知道从SQL数据库开始支持“ACID”的“ISOLATION”是多么有效。

首先,MongoDB不是一个酸性数据库。如果您想要ACID,您应该使用符合ACID标准的数据库。不要试图让数据库做不想做的事情。

对于实际隔离,目前MongoDB在单个文档级别上具有隔离,其原子操作包括$inc$set$unset以及所有其他操作。隔离不会发生在多个文档上,有一个$ isolated(http://docs.mongodb.org/manual/reference/operator/isolated/)运算符,但强烈建议不要使用它,并且在分片集合中不支持它。

还有一个关于提供隔离级别的文档页面:http://docs.mongodb.org/manual/tutorial/isolate-sequence-of-operations/但只有findAndModify和索引可以提供一些隔离元素,其他查询不会干扰。

从根本上说,即使它在多个文档上都有原子操作,MongoDB通常也不能支持许多文档的隔离,这是由于它的一个主要并发特性,即内存中操作的能力下降。

所以我回到原来的观点,如果你想让ACID转向ACID技术。