Mongodb
db.collection.stats 返回的 Object.bsonsize 和 avgObjSize 有什麼區別?
在我的收藏中,我的文件似乎比較相似。我需要知道我的生產伺服器需要多少儲存空間來儲存我的文件,這就是我查詢的原因:
db.collectionName.stats()
我的欄位 avgObjSize 大約是 6442 字節。我在我的收藏中選擇了一個隨機文件,我輸入了:
Object.bsonsize(db.collectionName.find({"_id" : ObjectId("5508497c51a990da07b07106")}))
我獲得了 810 個字節。
為什麼我有這麼大的差異?
我還注意到我儲存的文件越多, avgObjSize 減少的越多……這正常嗎?(我檢查了,我的文件不是空的。)
它是一個開發伺服器,所以我使用的是 Red Hat Enterprise Linux 5.8,它是 32 位版本。
我的欄位 avgObjSize 大約是 6442 字節。我在我的收藏中選擇了一個隨機文件,我輸入了:
Object.bsonsize(db.collectionName.find({"_id" : ObjectId(“5508497c51a990da07b07106”)}))
我獲得了 810 個字節。
為什麼我有這麼大的差異?
該
db.collection.find()
方法返回一個游標,因此您計算的是游標對象的大小而不是文件的大小。如果要測量 BSON 大小,應使用
db.collection.findOne()
返回單個文件:Object.bsonsize(db.collectionName.findOne( {"_id" : ObjectId("5508497c51a990da07b07106") } ))
我還注意到我儲存的文件越多, avgObjSize 減少的越多……這正常嗎?(我檢查了,我的文件不是空的。)
平均值基於集合中文件的大小,因此聽起來您的趨勢是隨著時間的推移插入更小的文件。正常行為完全取決於您的案例;-)