1

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

4

1 回答 1

4

我遇到了一个文档,Mongo DB 维护了一个全局写锁

那是旧信息,MongoDB 现在处于数据库级别的锁上,可能在未来的某个时间集合,但是,这已被放回支持并发性。

想知道在 SQL 数据库中支持“ACID”的“ISOLATION”的效率如何。

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

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

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

从根本上说,即使它对多个文档进行原子操作,MongoDB 通常也无法支持跨多个文档的隔离,这是由于它的主要并发特性之一,即能够为内存中的操作消退内存操作。

所以我回到我原来的观点,如果你想要 ACID 去 ACID 技术。

于 2013-09-10T08:01:14.853 回答