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

标签 mongodb bson

我有大约 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/

相关文章:

python - 导入错误 : no module named bson

mongodb - 使用 mgo 通过输入选择查询的选定字段

mongodb - mongo bson 对象ID

MongoDB C# 驱动程序不释放连接然后出错

node.js - 在 Mongoose 中执行并行 "Query"

mongodb - 如何在 MongoDB 聚合方法中连接整数数组?

go - 如何从mongo-go-driver光标获取ObjectID为String?

node.js - NodeJS 中 BSON 对象的 console.log

mongodb - Mongo 查询 : $exist NULL value

javascript - GraphQL 关系