如果使用MMAPv1存储引擎,如果文档的大小增加,更新会导致文档在磁盘上移动。但是,当使用WiredTiger存储引擎时,不断增长或缩小的文档仍然会导致性能问题吗?如果是这样的话,建议的处理方法是什么?
触发此问题的集合包含大小可能在x kB和3 x kB之间更改的文档。
发布于 2016-08-25 15:50:49
我只是阅读了WiredTiger站点上的MongoDB文档:https://docs.mongodb.com/manual/core/wiredtiger/
它包含了一些关于WiredTiger如何工作的有价值的信息(阅读文档中的所有句子):
WiredTiger使用MultiVersion并发控制(MVCC)。在操作开始时,WiredTiger向事务提供数据的实时快照。快照显示内存中数据的一致视图. 当写入磁盘时,WiredTiger将所有数据写入快照. MongoDB将WiredTiger配置为每隔60秒或2G日志数据创建检查点(即将快照数据写入磁盘)。
因此,WiredTiger将所有操作(插入、更新、删除)写入快照日志,然后将这些操作保存到磁盘版本60或2Gb。当然,如果它崩溃,快照将在启动时读取。它接近事件日志的工作方式。因此,由于它没有替换适当的数据(它只是在快照中写入新版本的数据,那么检查点进程将在稍后取代旧的),因此用更大的文档替换文档不会造成任何损失。
当然,如果你想确定,测试它,因为这是唯一的方式,100%确定。
https://stackoverflow.com/questions/39148774
复制相似问题