2016-05-28 8 views
1

データを削除する前に、データベースには25.5Gのスペースがあり、413562171のドキュメントがあります。文書を削除した後にmongodbデータベースがより多くのスペースを取る理由

そしてIは、以下の動作を実行:

db.collectionName.remove({XXX: "XXX"})

この動作は165540416の文書を削除し、データベースが25.8Gをとります。

大量のデータを削除した後に、より多くのスペースが必要になるのは混乱します。ドキュメントを削除すると、MongoDBのは自動的にスペースを解放しません

答えて

3

(それはこのスペースは、新しいドキュメントのために再利用することができ想定)

あなたはrepairDatabaseコマンドを使用してスペースを解放することができます:db.repairDatabase()などのmongoシェルから。またはmongod --repairとしてrepairDatabaseがあなたの現在の設定データを加えた2ギガバイトのサイズに等しい空きディスク容量が必要であることを考慮に入れて、 https://docs.mongodb.com/v3.2/reference/command/repairDatabase/

してください(mongodはすでにこのよう際に使用を実行すべきではない)、およびグローバルを取得

あなたはWiredTigerストレージエンジンを使用している場合は、代わりcompactコマンドrepairDatabase

を使用することができます。それは

リトル追加を完了するまで他の操作をブロックします、ロックを書きます

https://docs.mongodb.com/manual/reference/command/compact/

WiredTigerストレージエンジンは、デフォルトのストレージエンジンは

のMongoDB 3.2に起動されます
関連する問題