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

MongoDB regulært udtryk med indekseret felt

Årsagen til ydelsesforskellen her er sandsynligvis, at med indekset aktiveret, skal din forespørgsel krydse indekset (indlæses i hukommelsen), og derefter indlæse de matchende dokumenter, der også skal returneres i hukommelsen. Da du ikke bruger præfiks-forespørgslen, vil alle værdier i indekset blive scannet og testet mod det regulære udtryk. Ikke særlig effektiv.

Når du fjerner indekset, laver du bare en tabelscanning og matcher det regex der - i det væsentlige forenklede du tingene lidt fra den første.

Du kan muligvis gøre den indekserede version hurtigere, hvis den var en dækket indeksforespørgsel , ville det sandsynligvis også være hurtigere, hvis dette var et sammensat indeks, og du skulle kombinere det med kriterierne for et andet felt.

Når du bruger en præfiks-forespørgsel, er det ikke sådan, at den kun bruger et indeks, men du bruger indekset effektivt, hvilket er nøglen, og derfor ser du de reelle præstationsgevinster.




  1. Sådan forespørges en dynamisk nøgle - mongodb skemadesign

  2. Sådan opretter du MongoDB MultiKey-indeks på attributten for elementer i en array .NET-driver

  3. Mongo:Hvordan grupperes efter $uge, men returnerer startdatoen og slutdatoen for hver uge i stedet?

  4. MongoDB:Forfærdeligt kortReducer ydeevne