在mongodb文档中,它说:
从2.2版开始,MongoDB在每个数据库的基础上为大多数读写操作实现锁.一些全局操作(通常是涉及多个数据库的短期操作)仍然需要全局"实例"范围的锁.在2.2之前,每个mongod实例只有一个"全局"锁.
这是否意味着,在我有,比方说,3个连接的情况下mongodb://localhost/test来自网络上运行的不同应用程序——一次只能写一个?或者只是每个连接?
IOW:是每个连接,还是整个/测试数据库在写入时被锁定?
在mongodb文档中,它说:
从2.2版开始,MongoDB在每个数据库的基础上为大多数读写操作实现锁.一些全局操作(通常是涉及多个数据库的短期操作)仍然需要全局"实例"范围的锁.在2.2之前,每个mongod实例只有一个"全局"锁.
这是否意味着,在我有,比方说,3个连接的情况下mongodb://localhost/test来自网络上运行的不同应用程序——一次只能写一个?或者只是每个连接?
IOW:是每个连接,还是整个/测试数据库在写入时被锁定?
它不是每连接一次,而是每mongod
次.换句话说,锁将存在于该服务器上test
数据库的所有连接中.
它也是一个读/写锁,所以如果发生写入,那么读取必须等待,否则MongoDB怎么知道它是一致读取?
然而,我应该提到,MongoDB锁与您获得的SQL/普通事务锁非常不同,通常在平均更新之间,锁会保持大约一微秒.