MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBでデータベースのストレージサイズを取得する方法

MongoDBでデータベースのストレージサイズを取得したい場合は、stats()メソッドを使用します。このメソッドを実行すると、データサイズやインデックスサイズなど、データベースに関するさまざまな統計情報を一度に確認できます。

手順1:現在接続中のデータベースを確認する

まず、現在どのデータベースに接続しているのかを、以下のクエリで確認しておきましょう。

> db;

実行すると、次のように現在のデータベース名が表示されます。

test

この例では「test」というデータベースに接続していることがわかります。

手順2:db.stats()を実行して統計情報を取得する

続いて、以下のコマンドでデータベースの統計情報を取得します。

> db.stats()

実行すると、ストレージサイズを含む各種統計情報がJSON形式で出力されます。

{
    "db" : "test",
    "collections" : 114,
    "views" : 0,
    "objects" : 391,
    "avgObjSize" : 83.0076726342711,
    "dataSize" : 32456,
    "storageSize" : 3211264,
    "numExtents" : 0,
    "indexes" : 120,
    "indexSize" : 2494464,
    "fsUsedSize" : 126172377088,
    "fsTotalSize" : 199229435904,
    "ok" : 1
}

出力結果の主な項目の意味

出力される項目の中でも、特に把握しておきたいものは以下の通りです。

  • storageSize:ディスク上で実際にコレクションデータが占有しているストレージサイズ(バイト単位)。今回の例では約3.2MBです。
  • dataSize:ドキュメントデータそのものの圧縮前の合計サイズ(バイト単位)。
  • indexSize:インデックスが使用しているストレージサイズ(バイト単位)。
  • fsUsedSize / fsTotalSize:MongoDBのデータが保存されているファイルシステム全体の使用容量と総容量。ディスク全体の空き状況を把握するのに役立ちます。
  • avgObjSize:1ドキュメントあたりの平均サイズ(バイト単位)。

なお、「storageSize」はWiredTigerストレージエンジンにおける圧縮後のサイズであるため、「dataSize」よりも大きく表示される場合があります。これは正常な挙動であり、事前にディスク領域が確保されているためです。実際のディスク消費量を把握したい場合は「storageSize」を、論理的なデータ量を知りたい場合は「dataSize」を確認するとよいでしょう。

このようにdb.stats()メソッドを使えば、MongoDBのデータベースがどれだけのストレージを消費しているのかを簡単に確認できます。運用監視やキャパシティプランニングの際にぜひ活用してください。

  1. MongoDBでコレクション内のすべてのフィールド名(列名)を取得する方法

    MongoDBには「列」の概念が存在しないMongoDBはスキーマレスなデータベースであるため、リレーショナルデータベースのような「列(カラム)」という概念は存在しません。その代わりに「コレクション」という単位があり、各コレクションには異なる構造を持つドキュメントを自由に格納できます。そのため、MongoDBで「テーブル内のすべての列名を取得したい」という場合は、実際にはコレクション内のドキュメントが持つ「フィールド名」を確認することになります。基本的な構文まず、ドキュメントを挿入するための基本構文は次のとおりです。db.yourCollectionName.insertOne({YourFi

  2. MongoDBでDate/ISODateの各コンポーネント(年・月・日・時・分・秒)を取得する方法

    MongoDBでDate(ISODate)の各コンポーネント(年・月・日・時・分・秒など)を取得するには、まずコレクションに日付を含むドキュメントを作成します。ここでは、実際のコード例を通して手順をわかりやすく解説します。1. 日付を含むドキュメントの作成まず、insert()メソッドを使って、現在日時を持つドキュメントをコレクションに挿入します。> db.componentOfDateDemo.insert({"ShippingDate":new Date()}); WriteResult({ "nInserted" : 1 })2. find(