定義
dbStatsdbStatsコマンドは、指定されたデータベースのストレージ統計を返します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、および M 5クラスターで限定的にサポートされています。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { dbStats: 1, scale: <number>, freeStorage: 0 } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | 説明 |
|---|---|
1 | |
任意。 さまざまなサイズ データの増やす ファクター。 整数以外のスケール係数を指定した場合、MongoDB は指定された係数の整数部分を使用します。たとえば、スケール係数を バージョン 4.2 以降では、出力にサイズ値を増やすのに使用される | |
任意。コレクションに割り当てられた空き領域の詳細を返すには、 インスタンスに多数のコレクションまたはインデックスがある場合、空き領域の使用状況データを取得すると、処理が遅れる可能性があります。 空き領域の詳細なしで |
mongosh では、db.stats() 関数が dbStats. のラッパーを提供します。
動作
コマンドの実行に必要な時間は、データベースの合計サイズによって異なります。コマンドはすべてのデータファイルにアクセスする必要があるため、コマンドの実行には数秒かかる場合があります。
予期しないシャットダウン後の精度
Wired Tiger ストレージ エンジンを使用して mongod を不正にシャットダウンした後、dbStats によって報告されるカウントとサイズの統計が不正確になる可能性があります。
ドリフトの量は、チェックポイントからクリーン シャットダウンまでの間に実行された挿入、アップデート、または削除操作の数によって異なります。チェックポイントは通常、60 秒ごとに発現します。ただし、デフォルト以外の --syncdelay 設定で実行されている mongod インスタンスでは、チェックポイントの頻度が増減する可能性があります。
不正なシャットダウン後に統計を復元するには、mongod の各コレクションに対して validate を実行します。
不正なシャットダウン後:
レプリカセット ノードの状態の制限
レプリカセット ノード上で dbStats 操作を実行するには、ノードが PRIMARY または SECONDARY状態である必要があります。ノードが STARTUP2 などの別の状態にある場合、操作はエラーになります。
出力
dbStats.viewsデータベース内のビュー数。
dbStats.objectsすべてのコレクションにわたるデータベース内のオブジェクト(具体的には、ドキュメント)の数。
dbStats.dataSizeデータベースに保持されている非圧縮データの合計サイズ。
dataSizeは、ドキュメントを削除すると減少します。WiredTiger ストレージ エンジンを使用するデータベースの場合、圧縮が有効になっていると、
dataSizeがstorageSizeより大きくなる可能性があります。ドキュメントが縮小すると、dataSizeは減少します。
dbStats.storageSizeドキュメントストレージ用にデータベース内のすべてのコレクションに割り当てられた領域の合計(空き領域を含む)。
ドキュメントを削除または縮小しても、
storageSizeは減少しません。 この値は、dataSize圧縮 が有効になっている WiredTiger ストレージ エンジンを使用しているデータベースの場合、 より小さくなる可能性があります。storageSizeには、インデックスに割り当てられたスペースは含まれません。インデックスの合計サイズについては、indexSizeを参照してください。
dbStats.freeStorageSizeドキュメントストレージ用にデータベース内のすべてのコレクションに割り当てられた空き領域の合計。データベース・ストレージの空き領域はコレクションに割り当てられていますが、データは含まれていません。
freeStorageSizeにはインデックスに割り当てられた空き領域は含まれません。インデックスの空き領域の合計については、indexFreeStorageSizeを参照してください。この値を
dbStatsの出力に含めるには、 freeStorageを1に設定します。バージョン 5.0.6 でアップデートされました。
dbStats.indexFreeStorageSizeデータベース内のすべてのインデックスに割り当てられた空き領域の合計。 データベース・ストレージの空き領域はインデックスに割り当てられていますが、データは含まれていません。
indexFreeStorageSizeにはドキュメント ストレージに割り当てられた空き領域は含まれません。ドキュメント・ストレージの空き領域の合計については、freeStorageSizeを参照してください。indexFreeStorageSize進行中のインデックス構築は含まれません。この値を
dbStatsの出力に含めるには、 freeStorageを1に設定します。バージョン 7.0、6.3.2、6.0.7、5.3.0、5.2.1、5.0.19、5.0.6 でアップデート
dbStats.totalSizeデータベース内のすべてのコレクション内のドキュメントとインデックスの両方に割り当てられた領域の合計。 ストレージの使用済みおよび空き領域を含みます。 これは
storageSizeとindexSizeの合計です。
dbStats.totalFreeStorageSizeデータベース内のすべてのコレクション内のドキュメントとインデックスの両方に割り当てられたストレージの空き領域の合計。 これは
freeStorageSizeとindexFreeStorageSizeの合計です。この値を
dbStatsの出力に含めるには、 freeStorageを1に設定します。バージョン 5.0.6 でアップデートされました。
例
次の例は、dbStats の使用方法を示しています。
返されるデータの制限
返されるデータを 1 つのフィールドに制限するには、dbStats コマンドにフィールド名を追加します。この例では、indexSize 値を返します。
db.runCommand( { dbStats: 1 } ).indexSize
コレクションに割り当てられた空き領域を表示する
ストレージの空き領域の使用状況を表示するには、freeStorage を「1」に設定します。
db.runCommand( { dbStats: 1, scale: 1024, freeStorage: 1 } )
出力例:
{ db: 'test', collections: 2, views: 0, objects: 1689, avgObjSize: 52.56542332741267, dataSize: 86.7021484375, storageSize: 100, freeStorageSize: 32, indexes: 2, indexSize: 116, indexFreeStorageSize: 36, totalSize: 216, totalFreeStorageSize: 68, scaleFactor: 1024, fsUsedSize: 60155820, fsTotalSize: 61255492, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1646085664, i: 1 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1646085664, i: 1 }) }
freeStorage フィールドを使用すると、強調表示されたメトリクスの収集と表示が可能になります。
スケールフィールドでは、表示される値をキロバイトに設定します。