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

mongodb:limit()はクエリ速度を上げますか?

    limit()の使用 サーバーに通知します kを超えて取得しないこと ドキュメント。いくつかの最適化を許可して、帯域幅の消費を減らし、並べ替えを高速化します。最後に、limit句を使用すると、サーバーはRAMで並べ替えるときに利用可能な最大32 MBをより適切に使用できるようになります(つまり、並べ替え順序をインデックスから取得できない場合)。

    さて、長い話:find() カーソルを返します。デフォルトでは、カーソルは結果をバッチでクライアントに転送します。 ドキュメント から 、:

    limit()の使用 カーソルは、必要以上に多くのドキュメントを取得する必要はありません。したがって、帯域幅の消費と遅延が削減されます。

    ユースケースを考えると、おそらくsort()を使用することに注意してください。 操作も。上記と同じドキュメントから:

    そして、 sort()ドキュメントページ さらに説明します:

    その32MBの制限は、limit()を使用した並べ替えに固有のものではありません。 句。インデックスから順序を取得できないソートには、同じ制限があります。ただし、プレーン サーバーが保持する必要のあるすべてを並べ替える それらをソートするためにそのメモリ内のドキュメント。 制限付き 並べ替え、保存する必要があるのは k 同時にメモリ内のドキュメント。



    1. Mongo DBでの保存と挿入の違いは何ですか?

    2. Mongodb Aggregation:配列の一致する要素のみを返す方法

    3. MongoDB $ examples

    4. Node.js、Socket.io、Redis pub / subの大容量、低遅延の問題