sql >> データベース >  >> NoSQL >> MongoDB

MongoDBでコレクションのサイズを確認する5つの方法

    この記事では、mongoシェルを使用するときにMongoDBコレクションのサイズを確認するために使用できる5つの方法を紹介します。

    dataSize() 方法

    おそらく、MongoDBコレクションのサイズを確認する最も速くて簡単な方法は、db.collection.dataSize()を使用することです。 方法。このメソッドは、コレクションのサイズをバイト単位で返します。

    このメソッドを呼び出すには、collectionを置き換えるだけです。 確認したいコレクションの名前を付けてください。

    例:

    db.posts.dataSize()

    結果:

    3012

    この例では、postsというコレクションのサイズを確認します 。ほんの一握りの小さなドキュメントを含む小さなコレクションなので、サイズはわずか3012バイトです。

    totalSize() 方法

    db.collection.totalSize() メソッドは、コレクション内のデータの合計サイズとコレクション内のすべてのインデックスのサイズをバイト単位で返します。

    したがって、すべてのインデックスを含む合計サイズを知りたい場合は、この方法を使用してください。

    例:

    db.posts.totalSize()

    結果:

    114688

    これは、前の例で実行したのと同じコレクションです。 posts コレクションには3つのインデックスがあります(_idのインデックスを含む) フィールド)、合計サイズがインデックスなしのコレクションサイズよりも大幅に大きいことがわかります。

    stats() 方法

    コレクションのサイズ以上のものが必要な場合は、db.collection.stats()を試すことができます。 メソッド。

    このメソッドは、コレクションに関する統計(サイズを含む)を返します。

    例:

    db.posts.stats()

    結果(部分的):

    {
    	"ns" : "krankykranes.posts",
    	"size" : 3012,
    	"count" : 27,
    	"avgObjSize" : 111,
    	"storageSize" : 36864,
    	"freeStorageSize" : 16384,
    	"capped" : false,
    	"wiredTiger" : {
    		"metadata" : {
    			"formatVersion" : 1
    		},
    ...

    このメソッドは大量のデータを返すため、ここでは最初の小さな部分のみを返します。コレクションのサイズは、結果の上部近くのsizeに表示されます。 フィールド。

    デフォルトでは、このメソッドはサイズデータをバイト単位で返します。必要に応じて、キロバイト単位でレポートするように変更できます。これを行うには、scaleを使用します 値が1024のパラメータ 。

    例:

    db.posts.stats( { scale: 1024 } )

    結果(部分的):

    {
    	"ns" : "krankykranes.posts",
    	"size" : 2,
    	"count" : 27,
    	"avgObjSize" : 111,
    	"storageSize" : 36,
    	"freeStorageSize" : 16,
    	"capped" : false,
    	"wiredTiger" : {
    		"metadata" : {
    			"formatVersion" : 1
    		},
    ...

    db.collection.stats() メソッドは、collStatsのラッパーを提供します コマンド(下)。

    collStats コマンド

    前述のように、db.collection.stats() メソッドはcollStatsのラッパーです 診断コマンド。このコマンドは、コレクションに関する統計(サイズを含む)を返します。

    例:

    db.runCommand( { collStats : "posts", scale: 1 } )

    結果(部分的):

    {
    	"ns" : "krankykranes.posts",
    	"size" : 3012,
    	"count" : 27,
    	"avgObjSize" : 111,
    	"storageSize" : 36864,
    	"freeStorageSize" : 16384,
    	"capped" : false,
    	"wiredTiger" : {
    		"metadata" : {
    			"formatVersion" : 1
    		},
    ...

    stats()と同様 メソッドの場合、このコマンドは大量のデータを返すので、上からいくつかのものを取得しました。

    scaleを提供したことに注意してください 1の この例では、サイズデータをバイト単位で返します。これを1024に変更できます キロバイト単位で返します。

    例:

    db.runCommand( { collStats : "posts", scale: 1024 } )

    結果(部分的):

    {
    	"ns" : "krankykranes.posts",
    	"size" : 2,
    	"count" : 27,
    	"avgObjSize" : 111,
    	"storageSize" : 36,
    	"freeStorageSize" : 16,
    	"capped" : false,
    	"wiredTiger" : {
    		"metadata" : {
    			"formatVersion" : 1
    		},
    ...

    $bsonSize オペレーター

    $bsonSize 集約パイプライン演算子は、BSONドキュメントのサイズを返す目的でMongoDB4.4で導入されました。

    $bsonSizeを使用できます $groupと組み合わせて、コレクション内のすべてのドキュメントの合計サイズを返します。 および$sum 演算子。

    例:

    db.posts.aggregate([
      {
        $group: {
          "_id": null,
          "rootSize": { $sum: { $bsonSize: "$$ROOT" } }
        }
      }
    ])

    結果:

    { "_id" : null, "rootSize" : 3012 }

    1. StackExchange.Redisのキーパターンで値を取得します

    2. 初心者向けのHadoopMapReduceチュートリアル

    3. YCSBでMongoDBをベンチマークする方法は?

    4. WindowsホストからドッキングされたRedisにアクセスする