2012-01-04 5 views
3

私は実行するために不当に長い時間を取ってMongoDBのクエリを持っているが、それ:遅いMongoDBクエリ:理由を説明できますか?

  • はわずか6つのオブジェクト
  • をスキャンしていることは、インデックス
  • が一貫(ページングやそれ以外いませんでした〜の1500msを取るヒット占有)
  • インデックスミス%は、それは)((説明なし)プロファイラに現れた、そしてそれはとても遅いですなぜ私は理解していないmongostatで0

です。何か案は?

gimmebar:PRIMARY> db.assets.find({ owner: "123", avatar: false, private: false }).sort({date: -1}).explain() 
{ 
    "cursor" : "BtreeCursor owner_1_avatar_1_date_-1", 
    "nscanned" : 6, 
    "nscannedObjects" : 6, 
    "n" : 6, 
    "millis" : 1567, 
    "nYields" : 0, 
    "nChunkSkips" : 0, 
    "isMultiKey" : false, 
    "indexOnly" : false, 
    "indexBounds" : { 
     "owner" : [ 
      [ 
       "123", 
       "123" 
      ] 
     ], 
     "avatar" : [ 
      [ 
       false, 
       false 
      ] 
     ], 
     "date" : [ 
      [ 
       { 
        "$maxElement" : 1 
       }, 
       { 
        "$minElement" : 1 
       } 
      ] 
     ] 
    } 
} 

答えて

4

privateキーのインデックスがありませんか?

BtreeCursor owner_1_avatar_1_date_-1.find({ owner: "123", avatar: false, private: false }).sort({date: -1})

+0

私はそれを逃した信じることができません。ありがとう! – scoates

+0

コレクション内のオブジェクトの数はいくつですか? –

+0

@NicholasTolleyCottrell約200万回 – scoates

関連する問題