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

MongoDBのCapped Collection(上限コレクション)に設定できる最大サイズはいくつ?

Capped Collectionのサイズは自分で自由に指定できる

MongoDBのCapped Collection(上限コレクション)では、コレクションの最大サイズを自分で決めることができます。サイズの指定は、db.createCollection()メソッドのsizeパラメータを使って行います。基本的な構文は以下のとおりです。

db.createCollection('yourCollectionName', { capped: true, size: yourValue });

sizeパラメータには、バイト単位でコレクションの最大サイズを指定します。指定した値は256バイトの倍数に切り上げられる点に注意してください。また、Capped Collectionは領域が上限に達すると、古いドキュメントから自動的に削除される(FIFO方式で上書きされる)という特徴を持っています。

Capped Collection作成の実行例

それでは、実際にsizeパラメータを使ってCapped Collectionのサイズを指定してみましょう。

> db.createCollection('cappedCollectionMaximumSize', { capped: true, size: 1948475757574646 });
{ "ok" : 1 }

上記の例では、非常に大きな値をサイズとして指定しています。実行結果として{ "ok" : 1 }が返されれば、コレクションの作成は成功です。

作成したコレクションの内容を確認する

次に、作成したコレクションの詳細をexplain()メソッドで確認してみます。

> db.cappedCollectionMaximumSize.find().explain();

このコマンドを実行すると、以下のような出力が得られます。

{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "test.cappedCollectionMaximumSize",
        "indexFilterSet" : false,
        "parsedQuery" : {
        },
        "winningPlan" : {
            "stage" : "COLLSCAN",
            "direction" : "forward"
        },
        "rejectedPlans" : [ ]
    },
    "serverInfo" : {
        "host" : "DESKTOP-QN2RB3H",
        "port" : 27017,
        "version" : "4.0.5",
        "gitVersion" : "3739429dd92b92d1b0ab120911a23d50bf03c412"
    },
    "ok" : 1
}

出力結果のnamespaceフィールドに、作成したコレクション名が正しく反映されていることが確認できます。このように、Capped Collectionのサイズはsizeパラメータで自由に制御できるため、ログの保存やキャッシュ用途など、目的に応じた適切なサイズを設定することが大切です。

  1. Pythonで開けるファイルサイズの上限はどのくらい?メモリ制約と実用的な限界を解説

    結論から言うと、Pythonが開けるファイルサイズには、言語仕様上の明確な上限は存在しません。実際、多くの開発者がギガバイト単位のデータをメモリに読み込んで処理しています。 実用上の限界はハードウェアとOSによって決まる ただし、「理論上の上限がない」ことは「無限に読み込める」という意味ではありません。実用的な限界は、以下の環境要因によって決まります。 搭載RAM(メインメモリ)の容量 64ビットか32ビットか(OS・プロセッサの両方) オペレーティングシステムの制限 たとえば32ビット環境では、1つのプロセスが扱えるアドレス空間に上限があるため、環境にもよりますがおおむね1GB前後

  2. Pythonのリストの最大サイズはいくつ?上限値と仕組みを解説

    Pythonのリストの最大サイズとはPythonにおけるリストの最大長(要素数の上限)は、プラットフォームに依存します。具体的には、システムのアドレス空間や搭載されているRAMの容量によって決まります。この上限を確認するには、sysモジュールで定義されている定数 sys.maxsize を使います。64ビットシステムでは、以下のように 263-1(9223372036854775807)が返されます。>>> import sys>>> sys.maxsize9223372036854775807なお、32ビットシステムでは 231-1(2147483647)