mongodb avgObjSize混淆和字段长度对存储大小的影响

mongodb avgObjSize混淆和字段长度对存储大小的影响,mongodb,nosql,Mongodb,Nosql,我有一个包含3个实例的副本集 实例A:Mongodb 3.0(使用wiredtiger存储引擎) 实例B:Mongodb 2.6(使用良好的旧mmapv1) 实例C:MongoDB3.0仲裁器 我在一个数据库中有3个集合 coll2有1000万个对象,如下所示: { "_id" : ObjectId("5577d21d38a96916351f935f"), "abcde" : "00000000000000000000" } { "_id" : ObjectId("5577d21d38a96

我有一个包含3个实例的副本集

  • 实例A:Mongodb 3.0(使用wiredtiger存储引擎)
  • 实例B:Mongodb 2.6(使用良好的旧mmapv1)
  • 实例C:MongoDB3.0仲裁器
我在一个数据库中有3个集合

coll2有1000万个对象,如下所示:

{ "_id" : ObjectId("5577d21d38a96916351f935f"), "abcde" : "00000000000000000000" }
{ "_id" : ObjectId("5577d21d38a96916351f9360"), "abcde" : "00000000000000000001" }
{ "_id" : ObjectId("5577d21d38a96916351f9361"), "abcde" : "00000000000000000002" }
coll3有1000万个对象,如下所示:

{ "_id" : ObjectId("5577d49538a96924cc1ca59b"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000000" }
{ "_id" : ObjectId("5577d49538a96924cc1ca59c"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000001" }
{ "_id" : ObjectId("5577d49538a96924cc1ca59d"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000002" }
{ "_id" : ObjectId("5577d49538a96924cc1ca59e"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000003" }
{ "_id" : ObjectId("5577e87538a9690a60de1bee"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000000" }
{ "_id" : ObjectId("5577e87538a9690a60de1bef"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000001" }
{ "_id" : ObjectId("5577e87538a9690a60de1bf0"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000002" }
{ "_id" : ObjectId("5577e87538a9690a60de1bf1"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000003" }
coll4拥有100100万个对象,如下所示:

{ "_id" : ObjectId("5577d49538a96924cc1ca59b"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000000" }
{ "_id" : ObjectId("5577d49538a96924cc1ca59c"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000001" }
{ "_id" : ObjectId("5577d49538a96924cc1ca59d"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000002" }
{ "_id" : ObjectId("5577d49538a96924cc1ca59e"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000003" }
{ "_id" : ObjectId("5577e87538a9690a60de1bee"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000000" }
{ "_id" : ObjectId("5577e87538a9690a60de1bef"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000001" }
{ "_id" : ObjectId("5577e87538a9690a60de1bf0"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000002" }
{ "_id" : ObjectId("5577e87538a9690a60de1bf1"), "abcdefghijklmnopqrstuvwxyzabcd" : "00000000000000000003" }
如您所见,我正在更改字段的长度(5对30),并在集合中保持数据相同。因为我想知道我是否应该缩写一个集合的字段名,我希望这个集合很快能存储10-20亿个对象

实例A上的集合统计信息:

db.coll2.stats()
{
        "ns" : "testtest.coll2",
        "count" : 10000000,
        "size" : 540000000,
        "avgObjSize" : 54,
        "storageSize" : 150802432,
        "capped" : false,
        "nindexes" : 1,
        "totalIndexSize" : 90808320,
        "indexSizes" : {
                "_id_" : 90808320
        },
        "ok" : 1
}

db.coll3.stats()
{
        "ns" : "testtest.coll3",
        "count" : 10000000,
        "size" : 790000000,
        "avgObjSize" : 79,
        "storageSize" : 216186880,        
        "nindexes" : 1,
        "totalIndexSize" : 90832896,
        "indexSizes" : {
                "_id_" : 90832896
        },
        "ok" : 1
}

db.coll4.stats()
{
        "ns" : "testtest.coll4",
        "count" : 100000000,
        "size" : 7900000000,
        "avgObjSize" : 79,
        "storageSize" : 2182111232,
        "capped" : false,       
        "nindexes" : 1,
        "totalIndexSize" : 943423488,
        "indexSizes" : {
                "_id_" : 943423488
        },
        "ok" : 1
}
实例B上的集合统计信息:

db.coll2.stats()
{
        "ns" : "testtest.coll2",
        "count" : 10000000,
        "size" : 1120000000,
        "avgObjSize" : 112,
        "storageSize" : 1580150784,
        "numExtents" : 19,
        "nindexes" : 1,
        "lastExtentSize" : 415174656,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 1,
        "totalIndexSize" : 324456384,
        "indexSizes" : {
                "_id_" : 324456384
        },
        "ok" : 1
}

db.coll3.stats()
{
        "ns" : "testtest.coll3",
        "count" : 10000000,
        "size" : 1120000000,
        "avgObjSize" : 112,
        "storageSize" : 1580150784,
        "numExtents" : 19,
        "nindexes" : 1,
        "lastExtentSize" : 415174656,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 1,
        "totalIndexSize" : 324456384,
        "indexSizes" : {
                "_id_" : 324456384
        },
        "ok" : 1
}

db.coll4.stats()
{
        "ns" : "testtest.coll4",
        "count" : 100000000,
        "size" : 11200000000,
        "avgObjSize" : 112,
        "storageSize" : 13598789584,
        "numExtents" : 27,
        "nindexes" : 1,
        "lastExtentSize" : 2146426864,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 1,
        "totalIndexSize" : 3245577664,
        "indexSizes" : {
                "_id_" : 3245577664
        },
        "ok" : 1
}
让我困扰的是coll2coll3avgObjSize存储大小在实例B上没有改变,而在实例A上却改变了

根据实例B的统计数据,coll2coll3没有任何差异

这怎么可能呢