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

Urimeligt langsom MongoDB-forespørgsel, selvom forespørgslen er enkel og tilpasset indekser

Stødte ind i et meget lignende problem, og Indeksering Råd og ofte stillede spørgsmål på Mongodb.org siger, citat:

Så hvis du har nøglerne a,b og c og kører db.ensureIndex({a:1, b:1, c:1}), er disse "retningslinjer" for at bruge indekset så meget som muligt:

Godt:

  • find(a=1,b>2)

  • find(a>1 og a<10)

  • find(a>1 og a<10).sort(a)

Dårligt:

  • find(a>1, b=2)
  • find(a=1,b=2).sort(c)

  • find(a=1,b>2)

  • find(a=1,b>2 og b<4)

  • find(a=1,b>2).sort(b)

Dårligt:

  • find(a>1,b>2)

  • find(a=1,b>2).sort(c)

Håber det hjælper!

/J



  1. Gør Meteor reaktiv over for specifikke underelementer af Meteor.user()

  2. Gruppér efter datointervaller

  3. Mongoose - forespørgsel for at få data fra flere samlinger

  4. Kan ikke forespørge mongoDB med mongoose i node.js