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

Mongodb:Ydeevnepåvirkning af $HINT

Kan du venligst angive det sammensatte indeks, du har oprettet. Jeg har ikke meget ry, så jeg kunne ikke spørge om dette i kommentarfeltet. Men jeg har et muligt svar på dit spørgsmål. Mongo bruger en egenskab kaldet "Equality-Sort-Range", som opfører sig på en anden måde. Overvej nedenstående situation - Du har få dokumenter med felterne {navn:streng, pinkode:sekscifret nummer, SSN:nicifret tal} og du har to indekser som - {navn:1, pinkode:1, ssn:1} og andet indeks er {navn:1, ssn :1, pin :1} overvej nu nedenstående forespørgsler:

  1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) Denne forespørgsel vil bruge det første indeks, fordi vi har sammensat indeks i fortsættelse. Navn, pin, ssn er i fortsættelse.
  2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) Du vil forvente, at det første indeks vil blive brugt i denne forespørgsel. Men overraskende nok vil sekunder-indekset blive brugt af denne forespørgsel, fordi den har en intervaloperation på pin.

Equality-sort-range-egenskaben siger, at forespørgselsplanlæggeren vil bruge indekset på felt, der tjener - "equality-sort-range" bedre. Anden forespørgsel har interval på pin, så andet indeks vil blive brugt, mens første forespørgsel har lighed på alle felter, så første indeks vil blive brugt.




  1. Mongodb php få id for nyt dokument?

  2. Rækkeniveau atomisk FLÉT ERSTAT i BigQuery

  3. Hvordan unhideIndex() virker i MongoDB

  4. Forespørgsel Mongodb Subdocuments fejl Konvertering af cirkulær struktur til JSON