相关疑难解决方法(0)

WiredTiger和就地更新

我有一个用户集合.每个用户都有一个经常更新的字段"地理位置"(每次用户显着移动时).由于我希望在更新时在文档级别而不是集合级别上进行并发,因此我使用的是WiredTiger存储引擎.

我了解到,使用WiredTiger,文档中的每次更新都会导致创建新文档:

http://learnmongodbthehardway.com/schema/wiredtiger/

WiredTiger不支持就地更新

但是,本文还说"即使[WiredTiger]不允许就地更新,它仍然可以比许多工作负载的MMAP表现更好 ".这是什么意思?当我使用WiredTiger时,我必须注意哪些具体含义?例如,如果没有就地更新,数据库大小会快速增长吗?还有其他需要注意的事项吗?

我还了解到MongoDB 3.6中的WiredTiger增加了存储增量的功能,而不是重写整个文档(https://jira.mongodb.org/browse/DOCS-11416).这究竟是什么意思?

注意:另外我不明白的是,现在大多数(如果不是全部)硬盘驱动器的扇区大小为4096字节,因此您不能仅向硬盘驱动器写入4个字节(例如),而是必须写入完整块4096字节(首先读取它,更新它中的4个字节,然后写入).由于大多数文档通常<4096字节,这意味着在任何情况下都需要重写整个文档(即使使用MMAP).我错过了什么?

mongodb wiredtiger

2
推荐指数
1
解决办法
1086
查看次数

标签 统计

mongodb ×1

wiredtiger ×1