1

私は MongoDB を初めて使用します。次のフィールドを持つコレクションがあります。

> db.TestTable.findOne()
{
        "_id" : ObjectId("527c48e99000cf10bc2a1d82"),
        "ID" : "16587",
        "Name" : "N15247",
        "Serial1" : "11",
        "Serial2" : "727",
        "DateTime" : ISODate("1998-12-15T18:30:00Z"),
        "CompID" : "ID465",
        "CompName" : "F1460"
}

BsonDocument を使用して ac# ドライバーを使用して、約 3 億のドキュメントをコレクションに挿入しました。コレクションのサイズは次のとおりです。

> db.TestTable.stats()
{
        "ns" : "FeatureParser.LogsTable",
        "count" : 300000000,
        "size" : 62399477600,
        "avgObjSize" : 207.99825866666666,
        "storageSize" : 68783787568,
        "numExtents" : 54,
        "nindexes" : 2,
        "lastExtentSize" : 2146426864,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 0,
        "totalIndexSize" : 14878186064,
        "indexSizes" : {
                "_id_" : 9746789472,
                "dateTime_1" : 5131396592
        },
        "ok" : 1
}

MongoDB はドキュメントを挿入するためにそんなに多くのスペースを必要としますか? とにかくDBのサイズを減らすことができますか?

前もって感謝します。

4

3 に答える 3

1

コレクションがこれほどまでに大きい理由についてはすでに人々が示唆しているので、彼らの言葉を言い換える代わりに、2 番目の質問に答えます。コレクションのサイズを小さくする方法。

コレクションのサイズを小さくする良い方法が 1 つあります。

mongodb はすべてのドキュメントのキーを格納するため、名前を短くすることでコレクションのサイズを大幅に縮小できます。このようにして、次のようなドキュメントを含むコレクションが作成されます。

{
        "_id" : ObjectId("527c48e99000cf10bc2a1d82"),
        "ID" : "16587",
        "n" : "N15247",
        "s" : "11",
        "c" : "727",
        "d" : ISODate("1998-12-15T18:30:00Z"),
        "c" : "ID465",
        "f" : "F1460"
}

アプリケーション層では、これらの不可解な名前から通常の名前へのマッピングを作成できます。

于 2013-11-12T10:46:09.363 に答える