sql >> データベース >  >> NoSQL >> MongoDB

正規表現と並べ替えを使用したMongodbの単純なプレフィックスクエリは低速です

    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での並べ替えも意味します キー。これは役立つ場合と役に立たない場合がありますが、クエリのパフォーマンスを向上させる必要があります。




    1. 配列内のフィールドの最大値を取得するためのMongoDbクエリ

    2. 大量のメトリクス/分析データを保存するためのMongoDBアプローチ

    3. レコードに不足している日付を入力します

    4. CDPのHBaseがAmazonのS3をどのように活用できるか