我们是一个集合,其中每个文档的平均大小为 16 KB,文档数为 30,000,这意味着总空间应该是
(30,000 * 16) / 1024 * 2024 = 1.71 GB
但是我们发现集合统计中的集合大小是28.6 GB
,太可怕了。谁能告诉这怎么可能,当我们在这个文档中只有 736 个文档时,我检查了一个骗子,当时它只消耗了 18.5 MB。在这个集合中,我们只存储数字数据,而不是任何文本或大字符串。
Mongo db 是否有额外的收集空间或任何东西?
这是统计信息。
> db.MyCollection.stats()
{
"ns" : "DB.MyCollection",
"count" : 31228,
"size" : 30593236376,
"avgObjSize" : 979673.254002818,
"storageSize" : 31878659904,
"numExtents" : 33,
"nindexes" : 1,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 923888,
"indexSizes" : {
"_id_" : 923888
},
"ok" : 1
}
编辑
这是我之前捕获的统计数据(当记录数为 736 时)
> db.MyCollection.stats()
{
"ns" : "DB.MyCollection",
"count" : 736,
"size" : 18985944,
"avgObjSize" : 25796.119565217392,
"storageSize" : 23035904,
"numExtents" : 4,
"nindexes" : 1,
"lastExtentSize" : 11681792,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 32704,
"indexSizes" : {
"_id_" : 32704
},
"ok" : 1
}
而且我使用的插入只是不更新而是非常频繁地查询。
一些信息可能有助于确定情况:
- 集合的模式是深度树结构(7级)
- 为 mongodb 使用 Windows 服务器(但在 MongoLab(亚马逊托管)实例上也遇到了同样的问题)
- 将集合移动到另一个数据库(在另一台服务器上),也只使用插入语句,但 BulkInsertion 并且在那里也消耗了相同的大小。
示例数据:我已重命名字段名称
{
"_id":ObjectId("50ff7614c9145359648cc017"),
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"IDD":793,
"date": ISODate("2012-04-22T00:00:00 Z"),
"network":[
{
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"type":"facebook",
"safasfasf":[
{
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"type":0,
"sassasas":[
{
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"type":2,
"asfasffasfsafas":[
{
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"type":5,
"435435345":[
{
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"type":"Egypt",
"34534534435345":[
{
"gtrtt":1,
"XYZ":1,
"Namecount":1,
"ABC":0,
"123":0,
"type":"Cairo"
},
{
"gtrtt":1,
"XYZ":1,
"Namecount":1,
"ABC":0,
"123":0,
"type":null
}
]
}
]
}
]
}
]
}
]
}
],
"OS":[
{
"gtrtt":1,
"XYZ":1,
"Namecount":1,
"ABC":0,
"123":0,
"type":"Windows7"
},
{
"gtrtt":1,
"XYZ":1,
"Namecount":1,
"ABC":0,
"123":0,
"type":"WindowsXP"
}
],
"Browser":[
{
"gtrtt":1,
"XYZ":1,
"Namecount":1,
"ABC":0,
"123":0,
"type":"IE"
},
{
"gtrtt":1,
"XYZ":1,
"Namecount":1,
"ABC":0,
"123":0,
"type":"Firefox"
}
],
"Device":[
{
"gtrtt":2,
"XYZ":2,
"Namecount":2,
"ABC":0,
"123":0,
"type":"PC"
}
]
}