我使用Mongo GridFS并且我有一个相当大的Mongo数据库,当我使用db.stats()
命令时,dataSize为89GB。
当我创建一个mongo转储时,文件系统中的目录大小为86GB,当我在另一台机器上恢复数据库时,运行db.stats()
我现在得到122GB。
有人知道转储/恢复后dataSize上升33GB的原因是什么?
修改 这是初始数据库的统计数据
MongoDB shell version: 2.4.5
connecting to: imgdb
rs0:PRIMARY> db.stats();
{
"db" : "imgdb",
"collections" : 4,
"objects" : 2549884,
"avgObjSize" : 37802.88397276111,
"dataSize" : 96392968996,
"storageSize" : 363433842080,
"numExtents" : 207,
"indexes" : 4,
"indexSize" : 307245904,
"fileSize" : 366974337024,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}
以下是已恢复数据库的统计信息
MongoDB shell version: 2.6.4
connecting to: imgdb
dbdb.stats();
{
"db" : "imgdb",
"collections" : 4,
"objects" : 2549924,
"avgObjSize" : 51781.40103312883,
"dataSize" : 132038637248,
"storageSize" : 132281756768,
"numExtents" : 98,
"indexes" : 4,
"indexSize" : 199976784,
"fileSize" : 135159349248,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1
}
以下是可能原因的一些想法:
答案 0 :(得分:3)
MongoDB 2.6默认使用Powers of Two Record Allocation。
在加载数据之前,您可以尝试更改您的mongod newCollectionsUsePowerOf2Sizes或collMod
您的收藏集:
db.runCommand( { collMod: "myCollection", usePowerOf2Sizes: false })