MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb:limit() ще увеличи ли скоростта на заявката?

Използване на limit() информирате сървъра че няма да извлечете повече от k документи. Позволява някои оптимизации за намаляване на потреблението на честотна лента и за ускоряване на сортирането. И накрая, използвайки клауза за ограничение, сървърът ще може да използва по-добре максимума от 32 MB, наличен при сортиране в RAM (т.е.:когато редът на сортиране не може да бъде получен от индекс).

Сега дългата история:find() връща курсор. По подразбиране курсорът ще прехвърли резултатите на клиента на партиди. От документацията ,:

Използване на limit() курсорът няма да има нужда да извлича повече документи от необходимото. По този начин се намалява консумацията на честотна лента и забавянето.

Моля, обърнете внимание, че при вашия случай на употреба вероятно ще използвате sort() операция също. От същата документация като по-горе:

И страницата с документация за sort() обяснява допълнително:

Това ограничение от 32 MB не е специфично за сортиране чрез limit() клауза. Всеки сорт, чийто ред не може да бъде получен от индекс, ще страда от същото ограничение. Въпреки това, с обикновен сортиране сървърът трябва да съдържа всички документи в паметта си, за да ги сортира. С ограничено сортиране, трябва да съхранява само k документи в паметта едновременно.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. как мога да намеря масив от стойности в агрегиране на $match и да групирам резултата?

  2. NoClassDefFoundError => ClassPath$JavaContext при използване на стартиране на възпроизвеждане

  3. Lumen - mongodb - jenssegers/laravel-mongodb - пощальон

  4. geoNear връща неправилно разстояние

  5. Надстройка до ClusterControl Enterprise Edition