2011-12-09 34 views
6

私は数日前にMongoDBを使い始めました。データベースアーキテクチャの理解に問題があります。私はクエリdb.stats()を実行する場合;私はfilesize、datasize、storagesizeを持っていた。& indexsize。ここではMongoDBのMongoDBのファイルサイズとデータサイズはどういう意味ですか?

が利用するコレクション

データサイズ=データベースのサイズに割り当てられ

Storagesize =データサイズ+フリースペース、私はファイルサイズ&データサイズのリプレゼンテーションを理解することができませんでした:私はサーフィンしていますが、私は以下のことがわかりました悔い改めdatasize - > indexsizeにも含まれていますか?指定された属性に対して正確な解決策を提供してください。私が間違って言及した場合は、修正してください。

事前のおかげで、

答えて

16
  • DATASIZE:バイト単位のデータベースで使用されるすべての実際のデータ(BSONオブジェクト)の合計、
  • indexSize:バイト単位のデータベースによって使用されるすべての索引の合計、
  • このデータベースに割り当てられたすべてのファイルのサイズの合計(たとえばtest.0 + test.1など)、バイト単位で表します。
  • nsSizeMB:サイズこのデータベースの名前空間ファイル(メガバイト単位)。
  • avgObjSize:データベース内のドキュメントオブジェクトの平均サイズ。この値にはパディングが含まれているため、ドキュメントのサイズを小さくすると変更されないことがあります。
+1

こんにちは@Remon van Vilet、貴重な情報をありがとう。 – user626206

1

としては、ここでは、あなたが(MMAPv1で)監視する必要があります異なるMongoDBのパフォーマンス・メトリックについてthis postに説明し、あなたが追跡する必要がありますdbStatsによって返されたすべてのストレージサイズの指標です:

  • dataSize対策はデータベース内のすべてのドキュメントとパディングによって占有される領域。パディングのために、文書が削除された場合にはdataSizeが減少しますが、更新後に縮小または大きくなった場合は減少しません。これらの操作は文書のパディングに追加または借用するだけです。
  • indexSizeは、データベースで作成されたすべてのインデックスのサイズを返します。
  • storageSizeは、データベース内のすべてのデータエクステントのサイズを測定します。 MMAPv1では、エクステントに未使用の空き領域が含まれているか、削除または移動されたドキュメントによって解放されるため、常にdataSize以上になります。 storageSizeは、ドキュメントの縮小や移動時には影響を受けません。
  • fileSizeは、データファイルのサイズに対応します。明らかに常にstorageSizeより大きく、ディスク上のデータベースの格納領域と見ることができます。データベースを削除する場合にのみ減少し、コレクション、ドキュメント、またはインデックスが削除された場合は影響を受けません。ここで

dbStatsによって返さ異なる重要なストレージ・メトリクスと図である。 dbStats storage metrics for MongoDB 注:MMAPv1ストレージエンジンでは、MongoDBのドキュメントにディスク上の余分なスペースを事前に割り当てので、効率的にインプレース更新が可能であり、文書は再配置する必要なく成長する余地があるためです。この余分なスペースはパディングと呼ばれます。

関連する問題