MongoDB でデータベースのサイズを取得する
Mehvish Ashiq
2022年6月2日
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()
メソッドを使用して、データベースに関する詳細な統計を取得します。
最初に理解する必要のあるさまざまな分野があります。以下はそれぞれの簡単な説明ですが、すべてのフィールドの詳細についてはここを参照してください。
db
- 現在のデータベースの名前collections
- 現在のデータベース内のテーブル/コレクションの数views
- 現在のデータベース内のビューの数objects
- すべてのテーブル(コレクション)にわたる現在のデータベース内のオブジェクトの番号avgObjSize
- すべてのドキュメント(レコード)の平均サイズ(バイト単位)dataSize
- データベースに含まれる非圧縮データの合計サイズ。ドキュメントを削除すると、dataSize
が減少します。storageSize
-ファイルシステム
に保存されているデータのサイズです。圧縮を使用する場合、dataSize
はstorageSize
より大きくなる可能性があります。indexes
- すべてのコレクションにわたるデータベース内のインデックスの数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
}
プロジェクトの要件に応じてスケーリング係数を渡すこともできます。
- 統計をバイト単位で表示する場合、スケーリング係数は渡されません。
1024
をstats()
メソッドに渡して、キロバイト(KB)単位の統計を取得します。1024 * 1024
をstats()
関数に渡して、メガバイト(MB)単位の統計を取得します。1024 * 1024 * 1024
をstats()
メソッドに渡して、ギガバイト(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
を考慮すると、データベースは filesystem
で 0.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