MongoDB填充因子随着时间的推移而减少

时间:2014-04-29 15:42:07

标签: mongodb bson

我有一个~280000项的集合。几个星期前,我注意到paddingFactor非常高,

> db.products.stats().paddingFactor
1.409999999998178

今天看,它明显减少了:

> db.products.stats().paddingFactor
1.0099999999978637

我的印象是我要运行compact()来减少填充因子,我错了吗? mongodb是否会定期执行此操作?或者它如何“自行”减少?

1 个答案:

答案 0 :(得分:2)

填充因子始终重新计算(在采样的基础上,因此不是针对每个操作,而是针对每个 n 操作, n 目前正在4)确保存储碎片与存储开销之间的良好平衡。如果您正在进行大量需要增加文档的更新,则填充因子将会增加。如果执行大量插入(文档适合每个定义),paddingFactor将再次缓慢减少到1.0。

执行compact()将删除所有文档的现有填充并将所有对象修剪为它们的实际大小,这可能是您想要的,但是如果您盲目地将其应用于集合中,这也会导致问题很多成长都在发生。