我的mongodb集合中有57M文档,这是19G的数据。 我的索引占用了10G。这听起来很正常还是我做错了!我的主要关键是2G。
{
"ns" : "myDatabase.logs",
"count" : 56795183,
"size" : 19995518140,
"avgObjSize" : 352.0636272974065,
"storageSize" : 21217578928,
"numExtents" : 39,
"nindexes" : 4,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1,
"flags" : 1,
"totalIndexSize" : 10753999088,
"indexSizes" : {
"_id_" : 2330814080,
"type_1_playerId_1" : 2999537296,
"type_1_time_-1" : 2344582464,
"type_1_tableId_1" : 3079065248
},
"ok" : 1
}
答案 0 :(得分:4)
索引大小由索引的文档数量以及密钥的大小决定(复合键存储更多信息并且更大)。在这种情况下,_id索引除以文档数是40个字节,这似乎相当合理。
如果运行db.collection.getIndexes(),则可以找到索引版本。如果{v:0},索引是在mongo 2.0之前创建的,在这种情况下,您应该升级到{v:1}。此过程记录在此处:http://www.mongodb.org/display/DOCS/Index+Versions