scanAndOrder: true
Explainの出力では、クエリがドキュメントを取得し、出力が返される前にメモリ内でそれらを並べ替える必要があることを示しています。これはコストのかかる操作であり、クエリのパフォーマンスに影響を与えます。
scanAndOrder: true
の存在 nscanned
の違いも同様です n
Explain出力で、クエリが最適なインデックスを使用していないことを示しています。この場合、コレクションスキャンを実行する必要があるようです。 sort
にインデックスキーを含めることで、この問題を軽減できる可能性があります。 基準。私のテストから:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
スキャンと注文を必要とせず、n
を返します およびnscanned
あなたが探しているレコードの数の。これは、hashtags
での並べ替えも意味します キー。これは役立つ場合と役に立たない場合がありますが、クエリのパフォーマンスを向上させる必要があります。