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});