$ inc编辑到位mongodb 3.2 wiredtiger

时间:2016-03-05 11:41:11

标签: mongodb

对mongodb 3.2(wiredtiger)上的文档进行的任何更新是否始终重写磁盘上的完整文档,或者可以进行部分更新。

例如,$ inc操作确实改变了文档BSON结构。如果该字段已经存在,那么整数的4个字节保持在相同的位置,我们可以只更新4个字节。

关于哪个规则,可以在适当的位置编辑带有wiretiger的更新?

由于

1 个答案:

答案 0 :(得分:1)

  

注意为了简洁和易于理解,简化了以下内容。

WiredTiger有一个写时复制范例。另一方面,文档永远不会分散。因此,如果你修改它,它就会被复制。

但是:文档会经常同步到磁盘以创建快照。默认情况下,每隔60秒,在此期间耐用性由提前记录提供。 WiredTiger在进行光盘同步方面效率很高。

因此,在两个快照之间,您的$inc操作将写入日志并应用于文档的内存中表示。只有在创建新快照时,才会复制文档。

所以基本上每个对文档的编辑都已到位,并且只有在创建快照期间才能完成繁重的工作。