3

なぜMongoDBがこれほど多くのディスク容量を使用するのか、あるいはそれを減らすことでさらに良いのかを理解したいだけです。

以下は一例です。storageSizeが1.35GB(dataSize +事前に割り当てられたスペースを含む)で、インデックスサイズは約0.5GBで、合計で約2GBになります。mongodbが2GBのファイルを割り当てることを知っているので、そこにいくらかのスペースを失う可能性がありますが、6GBのファイルサイズを使用するにはどうすればよいですか?パディングは1に設定されています。実際には、一度だけ書き込まれたデータであり、削除や更新は行われません。ファイルサイズを小さくする可能性はありますか?

私の場合、MongoDBは従来のSQLソリューションの6倍のスペースを使用します。本当にMongoDBを使いたいのですが、ディスクスペースを減らす方法を見つける必要があります。ありがとうございました!

> db.stats(1024*1024)
{
    "db" : "data",
    "collections" : 4345,
    "objects" : 9328910,
    "avgObjSize" : 67.95158105287756,
    "dataSize" : 604,
    "storageSize" : 1350,
    "numExtents" : 6480,
    "indexes" : 8686,
    "indexSize" : 511,
    "fileSize" : 6078,
    "nsSizeMB" : 16,
    "ok" : 1
}

注:「データ」は、この統計で使用されている唯一のデータベースです

4

2 に答える 2

4

ファイルサイズを小さくする可能性はありますか?

まあ、部分的にはい。小さい/[多くの小さい]データベースがある場合は、smallfilesdatabaseprocess/esを開始するときにフラグを使用することをお勧めします。
そうすることで、事前に割り当てられたファイルを最大2ギガバイトから最大512メガバイトに、ジャーナルファイルを1ギガバイトから128メガバイトに減らすことができます。大規模なデータベースでこのフラグを使用する場合、サーバーは多くのファイルを作成する必要があり、パフォーマンスに影響を与える可能性があることに注意してください。

データベースから十分なデータを削除した場合は、db.repairDatabase()コマンドを実行して未使用のディスク領域を解放できます。このコマンドを実行すると、データベースにグローバルブロックが作成されることを覚えておいてください。

于 2012-12-21T10:05:24.340 に答える
0

私が理解していなかったのは、UNIXシステムでは、mongodbは現在のファイルだけでなく、2 + 2=4GBの合計事前割り当てになる可能性のあるNEXTファイルも事前に割り当てるということでした...

于 2012-12-21T09:15:00.097 に答える