完了までに時間がかかりすぎるクエリがあります。 私はいくつかのパフォーマンステストをしたいのですが、一度チェックすると(現在は約30秒かかっています)、クエリーがより速く実行されます(< 1秒)。 私はそれがmongodbのキャッシュにあると仮定します。 mongodbのキャッシュを無効にする方法や、パフォーマンスをチェックする別の方法はありますか?キャッシュなしでmongodbのクエリのパフォーマンスを確認する方法
私はmongodbでホストされているmongodbを使用しています。私はそれが長すぎたので、説明の一部を切り捨てなければならなかった
{"cursor"=>"BtreeCursor start_-1", "nscanned"=>5276, "nscannedObjects"=>5276, "n"=>25, "millis"=>3264, "nYields"=>0, "nChunkSkips"=>0, "isMultiKey"=>false, "indexOnly"=>false, "indexBounds"=>{"start"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]]}, "allPlans"=>[{"cursor"=>"BtreeCursor attendees_count_-1", "indexBounds"=>{"attendees_count"=>[[1.7976931348623157e+308, 1]]}}, {"cursor"=>"BtreeCursor images_count_-1", "indexBounds"=>{"images_count"=>[[1.7976931348623157e+308, 2]]}}, {"cursor"=>"BtreeCursor start_-1", "indexBounds"=>{"start"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]]}}, {"cursor"=>"BtreeCursor start_-1_end_-1", "indexBounds"=>{"start"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]], "end"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]]}}, {"cursor"=>"BtreeCursor attendees._id_1 multi", "indexBounds"=>{"attendees._id"=>[[BSON::ObjectId('4f0b621e94bb688563000007'),BSON::ObjectId('4f0b621e94bb688563000007')], [BSON::ObjectId('4f0b647d5a8c00acde05236f'), BSON::ObjectId('4f0b647d5a8c00acde05236f')], [BSON::ObjectId('4f0b647d5a8c00acde052370'), BSON::ObjectId('4f0b647d5a8c00acde052370')], [BSON::ObjectId('4f0b647d5a8c00acde052371'), BSON::ObjectId('4f0b647d5a8c00acde052371')], [BSON::ObjectId('4f0b647d5a8c00acde052372'), BSON::ObjectId('4f0b647d5a8c00acde052372')], [BSON::ObjectId('4f0b647d5a8c00acde052373') ... (lots of Object IDs)]]}}}
注意:ここでのRuby on Railsの3 とプログラムが説明しています。 "たくさんのオブジェクトID"がある場合、オブジェクトID(〜400)がたくさんありました。
おかげで、すべての
私はメモリにすべての文書を読み込むことができないので、私はまだ私の最初のクエリを高速に実行します。だから私はすでに説明を使って、それが〜5000文書をスキャンしてクエリをフェッチするのを見ました。そして、私は30秒間が5000文書に対して多すぎると思います。なぜ私はキャッシュなしで同じクエリを実行し続けたいので、何が間違っているかをテストすることはできません。 – Gluz
クエリでインデックスが使用されましたか?質問に説明を追加してみてください。私は出力を見てみることができます。 –
元のメッセージに追加されました。 – Gluz