LoginSignup
0
0

More than 5 years have passed since last update.

【MongoDB】「隠されたコレクション」の正体がわからない

Last updated at Posted at 2015-10-19

最近お仕事でMongoDB 2.6を触ってるのですが、
よくわからないモノに遭遇したのでメモ。

とりあえず、新規DBにCappedCollectionを作成。

> mongo
> show dbs;
admin  (empty)
local  0.078GB
> use DB;
switched to db DB
> show collections;
// コレクションなし
> db.createCollection("Col", { capped : true, size : 16384 });
{ "ok" : 1 }

これでコレクションの作成完了。
この時点でインデックスを管理するコレクションが作られているはずなので、
コレクションの総数は 2 のはずである。

> show collections;
Col
system.indexes

うん、2つだ。
で、ここでdb.stats()を実行。

> db.stats();
{
    "db" : "DB",
    "collections" : 3,
    "objects" : 4,
    "avgObjSize" : 80,
    "dataSize" : 320,
    "storageSize" : 32768,
    "numExtents" : 3,
    "indexes" : 1,
    "indexSize" : 8176,
    "fileSize" : 67108864,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
        "major" : 4,
        "minor" : 5
    },
    "extentFreeList" : {
        "num" : 0,
        "totalSize" : 0
    },
    "ok" : 1
}

… collections が 3。
このコレクションひとつは一体どこへ…?

これを仮に「隠されたコレクション」と名づけて進めてみる。
DB全体でのobjects が4。これきっと公開情報だけじゃ数が合わないよね。

> db.Col.stats()
{
    "ns" : "DB.Col",
    "count" : 0,
    "size" : 0,
    "storageSize" : 16384,
    "numExtents" : 1,
    "nindexes" : 1,
    "lastExtentSize" : 16384,
    "paddingFactor" : 1,
    "systemFlags" : 1,
    "userFlags" : 0,
    "totalIndexSize" : 8176,
    "indexSizes" : {
        "_id_" : 8176
    },
    "capped" : true,
    "max" : NumberLong("9223372036854775807"),
    "ok" : 1
}
> db.system.indexes.Stats();
{
    "ns" : "DB.system.indexes",
    "count" : 1,
    "size" : 112,
    "avgObjSize" : 112,
    "storageSize" : 8192,
    "numExtents" : 1,
    "nindexes" : 0,
    "lastExtentSize" : 8192,
    "paddingFactor" : 1,
    "systemFlags" : 0,
    "userFlags" : 1,
    "totalIndexSize" : 0,
    "indexSizes" : {

    },
    "ok" : 1
}

count が 0 と 1。
4 - (0 + 1) = 3
隠されたコレクションはどうやら3つのドキュメントを持っているらしい。

dataSizeの差を見てみる。
320 - (0 + 112) = 208
3つで208のサイズ。等分はできない。

storageSizeの差。
32768 - (16384 + 8192) = 32768 - 24576
= 8192
8192 byte 取ってるらしい。

まとめると、
隠されたコレクション
 storageSize : 8192
 size : 208
 count : 3

そのうち追記します。
何かわかる方とかいらっしゃいましたらコメントをお願い致します。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0