我有大约 280000 件元素的收藏。几周前我注意到 paddingFactor 相当高,
> db.products.stats().paddingFactor
1.409999999998178
当我今天查看时,它已显着减少:
> db.products.stats().paddingFactor
1.0099999999978637
我的印象是我必须运行compact()来减少填充因子,我错了吗? mongodb 自己定期执行吗?或者说它为什么会“自行”减少?
最佳答案
填充因子始终重新计算(在采样的基础上,因此不是针对每个操作,而是针对每个n次操作,n em> 目前为 4) 以确保存储碎片与存储开销之间的良好平衡。如果您正在进行大量需要文档增长的更新,则填充因子将会增加。如果执行大量插入(文档适合每个定义),paddingFactor 将再次缓慢减小到 1.0。
执行 compact()
将删除所有文档的现有填充,并将所有对象修剪为实际大小,这可能是您想要的,但如果您盲目应用,也可能会导致麻烦这是一个发生了很多成长的集合。
关于MongoDB 填充因子随着时间的推移而减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23369277/