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

Mongodb simpel præfiks-forespørgsel med regex og sortering er langsom

scanAndOrder: true i forklaringen angiver output, at forespørgslen skal hente dokumenterne og derefter sortere dem i hukommelsen, før outputtet returneres. Dette er en dyr operation og vil have en indvirkning på effektiviteten af ​​din forespørgsel.

Eksistensen af ​​scanAndOrder: true samt forskellen i nscanned en n i forklaringen angiver output, at forespørgslen ikke bruger et optimalt indeks. I dette tilfælde ser det ud til, at det er nødvendigt at lave en indsamlingsscanning. Du kan muligvis afhjælpe dette problem ved at inkludere indeksnøglerne i din sort kriterier. Fra min test:

db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()

Kræver ikke scanning og bestilling, og returnerer n og nscanned af antallet af poster, du leder efter. Dette ville også betyde sortering på hashtags nøgle, som måske eller måske ikke er nyttig for dig, men som bør øge ydelsen af ​​forespørgslen.




  1. Gaffelproces:Fejl under levering af muffe:Knækket rør

  2. hvordan man bruger $lookup stage i java med spring data mongodb?

  3. Mongo Query Indlejrede feltværdier med ukendte overordnede nøgler på to niveauer

  4. Hvordan designer jeg et MongoDB-skema til en Twitter-artikelaggregator