sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb:vil limit() øge forespørgselshastigheden?

Brug af limit() du informerer serveren at du ikke vil hente mere end k Dokumenter. Tillader nogle optimeringer for at reducere båndbreddeforbrug og for at fremskynde sorteringer. Endelig vil serveren ved hjælp af en limit-klausul bedre kunne bruge de 32MB max, der er til rådighed, når der sorteres i RAM (dvs.:når sorteringsrækkefølgen ikke kan hentes fra et indeks).

Nu, den lange historie:find() returnerer en markør. Som standard vil markøren overføre resultaterne til klienten i batches. Fra dokumentationen ,:

Brug af limit() markøren behøver ikke at hente flere dokumenter end nødvendigt. Derved reduceres båndbreddeforbrug og latens.

Bemærk venligst, at du, givet dit brugstilfælde, sandsynligvis vil bruge en sort() drift også. Fra samme dokumentation som ovenfor:

Og sort() dokumentationssiden forklarer yderligere:

Denne begrænsning på 32 MB er ikke specifik for sortering ved hjælp af en limit() klausul. Enhver slags, hvis rækkefølge ikke kan hentes fra et indeks, vil lide under samme begrænsning. Dog med en almindelig sorter serveren skal indeholde alle dokumenter i sin hukommelse for at sortere dem. Med en begrænset sortere, den skal kun gemme k dokumenter i hukommelsen på samme tid.



  1. Sådan formateres datoen i MongoDB

  2. mongoose findOne med sortering

  3. MongoDB-tjenesten kører ikke i Fedora

  4. Opdateringsarray inde i Mongo-dokumentet virker ikke