Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
其中一个集合具有带有字段的文档"sc":[float]。我想迭代所有文档并将其更改为"sc": float,即删除数组并将浮点值直接分配给键。
"sc":[float]
"sc": float
WiredTiger 会附加所有更新的文档,而不是尝试像 MMap 那样进行一些就地更新,这不是真的吗?
这基本上会使数据库的大小增加一倍,最初的一半是过时的数据。
我需要打电话mongod -repair来丢弃那些过时的文件,还是我需要做其他事情?
mongod -repair
WT 总是在更新时重写文档,但它没有使用填充,而是在空闲块中分配文档,而不是 NMAP,所以如果我们有文档 1、2、3 - 有可能将 no1 移动到文件末尾(或最近的间隙),并且 no2 将分配在先前的 no1 空间中。
WT 最重要的是什么:
WiredTiger 会自动进行空间的持续压缩和重用。
为了确保文件的使用效率,我们可以按照本讨论强制 WT 使用较小的页面大小。
--wiredTigerCollectionConfigString="leaf_page_max=8KB"
这里也compact可以用来回收更多空间。
compact