dbStats
定義
dbStats
dbStats
コマンドは、指定されたデータベースのストレージ統計を返します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
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 フィールドを使用すると、強調表示されたメトリクスの収集と表示が可能になります。
スケールフィールドでは、表示される値をキロバイトに設定します。