sql >> Databáze >  >> NoSQL >> MongoDB

mongodb:zvýší limit() rychlost dotazu?

Pomocí limit() informujete server že nenačtete více než k dokumenty. Umožnění některých optimalizací pro snížení spotřeby šířky pásma a zrychlení řazení. A konečně, pomocí klauzule omezení bude server schopen lépe využít maximálních 32 MB dostupných při třídění v paměti RAM (tj. když pořadí řazení nelze získat z indexu).

Nyní dlouhý příběh:find() vrátí kurzor. Ve výchozím nastavení bude kurzor přenášet výsledky klientovi v dávkách. Z dokumentace ,:

Pomocí limit() kurzor nebude muset načíst více dokumentů, než je nutné. Tím se snižuje spotřeba šířky pásma a latence.

Vezměte prosím na vědomí, že vzhledem k vašemu případu použití pravděpodobně použijete sort() provoz také. Ze stejné dokumentace jako výše:

A stránka dokumentace sort() vysvětluje dále:

Omezení 32 MB není specifické pro řazení pomocí limit() doložka. Každý druh, jehož pořadí nelze získat z indexu, bude trpět stejným omezením. Nicméně s prostým seřadit server musí obsahovat vše dokumenty ve své paměti, aby je seřadil. S omezeným řazení, musí uložit pouze k dokumenty v paměti současně.



  1. Třída 'Jenssegers\Mongodb\MongodbServiceProvider' nebyla nalezena

  2. Mongo _id pro pole vnořených dokumentů

  3. Jak se správně připojit ke clusteru Atlas M0 (Free Tier) pomocí ovladače Java?

  4. MongoDB bulkWrite()