paddingFactor是什么?​


  • 註冊用戶

    一下这些是我查寻到的解释:它是存储空间冗余系数,1.0表示没有冗余,1.5表示50%的冗余空间,有了冗余空间,可以让后续引发size增加的操作更快(不会导致重新分配磁盘空间和文档迁移),一般是在1到4之间。可以通过db.collection.stats()看到collection的该值“paddingFactor”。 该值是MongoDB自己处理的,使用者无法设置paddingFactor。我们可以在compact的时候对已经有的文档指定该值,但这个paddingFactor值不影响后续新插入的文档。 repairDatabase跟compact类似,也能移除冗余减少存储空间,但冗余空间少了会导致后续增加文档size的update操作变慢。 虽然我们无法设置paddingFactor,但是可以使用usePowerOf2Sizes保证分配的空间是2的倍数,这样也可以起到作用(MongoDB2.6版本起默认启用usePowerOf2Size)。 或者手动实现padding:在插入文档的时候先用默认字符占用一块空间,等到真实数据写入时,再unset掉它。

    参考:

    本帖下載内容已隐藏,请登入以查看隐藏内容!


  • 大中华区MongoDB顾问

    其实这已经是很早的一个概念了,只适用于MMAPv1这个引擎。3.0以后的版本我们建议使用WiredTiger引擎,它在性能上有比较大的提升。


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待