2016-04-30 6 views
1

MongoDBは、ドキュメントの拡張のためにスペースをあらかじめ割り当てています。これはnoPaddingオプションでオフにすることができますが、これはMMAPv1エンジンにのみ適用されます。WiredTigerに相当するNoPaddingとは何ですか?

WiredTigerエンジンには同様のオプションがありますか?私は挿入だけで成長する特定のコレクションを持っているので、ドキュメントのサイズは常に同じです。

私のコレクションはできるだけ小さくしたいと思っています。ですから、WiredTigerの省スペース(noPaddingなど)を提供するMongoDBの機能があれば、私は知りたいと思います。

答えて

2

no in-place updates (see slide 25)が存在するため、WiredTigerには埋め込みがありません。代わりに、更新された文書全体が新しい場所に書き込まれます。これはコピーオンライトです。

もちろん、これによりデータファイルが必要以上に大きくなります。ただし、圧縮を使用する場合(既定でオンになっています)、そのオーバーヘッドはやや小さくする必要があります。

あなたは本当にあなたが「廃棄物」の任意のスペースをないことを確認したい場合は、compact commandを使用することができます。

use yourDb 
db.runCommand({compact:"yourColl"}) 

このreleases unused disk space to the systemが、運転中にblocking the databaseの欠点があります。

+0

あなたの答えをありがとう。私はZlib圧縮で実際のファイルサイズしか取得できません。それはイライラしている。また、インデックスは、サイズに関係なく2倍のサイズをとります。コンパクトは助けても十分ではありません。また、あなたがそれを述べたので、コレクション内のすべてを削除し、compactおよびdropIndexesを適用すると、空き領域がまだ使用されていません。それについての提案はありますか? – stackyname

+0

@stackynameインデックスファイルが異なります。コレクションを削除する場合は、コレクションを削除するだけです。その後、データファイルは削除されます。しかし、あなたが達成しようとしていることは確かではありません。多分あなたはそれについてもっと明確にし、それに応じてあなたの質問を編集するべきでしょう。 –

+0

混乱して申し訳ありません。私は主な質問を編集しました。コメントの私の質問は主な質問とは異なっていた。私は自分のコレクションを削除したくないのですが、いくつかの情報を削除すると、私はディスクスペースを取り戻したいと思います。 – stackyname

関連する問題