MongoDB でデータベースのサイズを取得する

Mehvish Ashiq 2022年6月2日
MongoDB でデータベースのサイズを取得する

MongoDB で作業しているときに、データベースのサイズを知っていますか?今日は、show dbs コマンドと db.stats() メソッドを使用して、MongoDB でデータベースのサイズを取得する方法を理解します。

MongoDB でデータベースのサイズを取得する

show dbs; を使用できます次のように、mongo シェルでコマンドを実行して、MongoDB 内のすべてのデータベースのストレージサイズを取得します。

サンプルコード:

> show dbs;

出力:

admin   0.000GB
config  0.000GB
local   0.000GB
test    0.001GB

上記の出力は、データベース名とそのサイズを GB 単位で示しています。db.stats() メソッドを使用して、データベースに関する詳細な統計を取得します。

最初に理解する必要のあるさまざまな分野があります。以下はそれぞれの簡単な説明ですが、すべてのフィールドの詳細についてはここを参照してください。

  1. db - 現在のデータベースの名前
  2. collections - 現在のデータベース内のテーブル/コレクションの数
  3. views - 現在のデータベース内のビューの数
  4. objects - すべてのテーブル(コレクション)にわたる現在のデータベース内のオブジェクトの番号
  5. avgObjSize - すべてのドキュメント(レコード)の平均サイズ(バイト単位)
  6. dataSize - データベースに含まれる非圧縮データの合計サイズ。ドキュメントを削除すると、dataSize が減少します。
  7. storageSize - ファイルシステムに保存されているデータのサイズです。圧縮を使用する場合、dataSizestorageSize より大きくなる可能性があります。
  8. indexes - すべてのコレクションにわたるデータベース内のインデックスの数
  9. indexSize - データベース内のすべてのインデックスに割り当てられた空きインデックススペースと割り当てられたスペースの合計
    10.totalSize-データベース内のすべてのコレクションのインデックスとドキュメントに割り当てられたスペースの合計。空きおよび使用済みのストレージスペースが含まれます。
    11.scaleFactor-コマンドで使用される値
    12.fsUsedSize および fsTotalSize-これらはすべて、データベースが保存されているファイルシステムに関するものです。これらは、データベースがどれだけ成長できるかを知るために使用されます。
    13.ok-値 1 は、クエリが正常に実行されたことを意味します

db.stats() 関数を使用する前に、データベースを選択する必要があることに注意してください。

サンプルコード:

> use test
> db.stats()

出力:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1485,
        "storageSize" : 135168,
        "indexes" : 5,
        "indexSize" : 102400,
        "totalSize" : 237568,
        "scaleFactor" : 1,
        "fsUsedSize" : 176960913408,
        "fsTotalSize" : 208499617792,
        "ok" : 1
}

プロジェクトの要件に応じてスケーリング係数を渡すこともできます。

  1. 統計をバイト単位で表示する場合、スケーリング係数は渡されません。
  2. 1024stats() メソッドに渡して、キロバイト(KB)単位の統計を取得します。
  3. 1024 * 1024stats() 関数に渡して、メガバイト(MB)単位の統計を取得します。
  4. 1024 * 1024 * 1024stats() メソッドに渡して、ギガバイト(GB)単位の統計を表示します。

デモとして次の例を参照してください。

統計をバイト単位で取得します。

>db.stats()

出力:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1485,
        "storageSize" : 135168,
        "indexes" : 5,
        "indexSize" : 102400,
        "totalSize" : 237568,
        "scaleFactor" : 1,
        "fsUsedSize" : 176986320896,
        "fsTotalSize" : 208499617792,
        "ok" : 1
}

上記の storageSize を考慮すると、データベースは filesystem0.1352 MB を占有します。同様に、次の例でデータベースのサイズを取得できます。

KB で統計を取得します。

> db.stats(1024)

出力:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1.4501953125,
        "storageSize" : 132,
        "indexes" : 5,
        "indexSize" : 100,
        "totalSize" : 232,
        "scaleFactor" : 1024,
        "fsUsedSize" : 172839080,
        "fsTotalSize" : 203612908,
        "ok" : 1
}

MB で統計を取得します。

> db.stats(1024*1024)

出力:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 0.0014162063598632812,
        "storageSize" : 0.12890625,
        "indexes" : 5,
        "indexSize" : 0.09765625,
        "totalSize" : 0.2265625,
        "scaleFactor" : 1048576,
        "fsUsedSize" : 168788.66796875,
        "fsTotalSize" : 198840.73046875,
        "ok" : 1
}

GB で統計を取得します。

> db.stats(1024*1024*1024)

出力:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 0.0000013830140233039856,
        "storageSize" : 0.000125885009765625,
        "indexes" : 5,
        "indexSize" : 0.000095367431640625,
        "totalSize" : 0.00022125244140625,
        "scaleFactor" : 1073741824,
        "fsUsedSize" : 164.83288955688477,
        "fsTotalSize" : 194.18040084838867,
        "ok" : 1
}
著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - MongoDB Database