FAT47の底辺インフラ議事録

学んだことのメモ帳です

MongoDBのindex周りのメモ

前の記事で紹介したuptime

node.js製のレスポンスタイム測定ツール「uptime」をインストール


のデータをbatchで色々する必要があったので、indexまわりを調べたメモ。

MongoDBのexplain
db.コレクション名.find(クエリー).explain();


例:

db.pings.find({"tags":["hoge"]}).explain();
{
        "cursor" : "BtreeCursor",
        "nscanned" : 6545,
        "nscannedObjects" : 6545,
        "n" : 2057,
        "millis" : 17,
        "nYields" : 0,
        "nChunkSkips" : 0,
        "isMultiKey" : false,
        "indexOnly" : false,
        "indexBounds" : {
	}
}
nscanned 走査されたオブジェクトとindex数。indexが使われた場合、nscannedObjectsより多くなることもある
nscannedObjects 走査されたオブジェクト数
n マッチした件数
millis クエリにかかった時間(ミリ秒)

indexを貼る
db.コレクション名.ensureIndex(フィールド名:1);
例:

db.pings.ensureIndex({tags:1});

フィールド名のあとの数字の意味

1 昇順
-1 降順


複合indexを貼る場合

db.pings.ensureIndex({tags:1, timestamp:-1});