我遇到一个Mongo DB维护全局写锁的文档,想知道从SQL数据库支持“ACID”的“ISOLATION”效率。
答案 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技术。