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

I MongoDB, hvis et indeks er på 3 felter, kan vi bruge det indeks, når vi forespørger på 2 felter? (jokertegn på 3. felt)

Det er B-træindekser, så de kan bruges til et præfiks-undersæt af de involverede kolonner. Hvis du ikke har de forreste kolonner, er en indeksområdescanning (den operation, som et B-træindeks primært bruges til) ikke længere mulig. Der kan være andre måder at stadig bruge indekset på (Oracle har f.eks. hurtige fulde scanninger og spring over scanninger), men normalt vil indekset ikke blive brugt.

Dette ræsonnement gælder for alt, der bruger B-træ-indekser, relationelle DB eller ej.

Igen afhænger dette ikke af kolonnens type, men af ​​rækkefølgen af ​​kolonner i indekset. Du skal have de førende kolonner (i dit tilfælde har du brug for side_type). Hvis du har mange forespørgsler uden sidetype, kan du overveje at genskabe indekset med sidetype som sidste kolonne (hvilket selvfølgelig også kan have en negativ indvirkning på andre forespørgsler). Generelt skal du vide, hvilken slags forespørgsler du vil køre, før du kan designe indekserne.




  1. Find nogle værdier i en mongodb-samling?

  2. GroupBy Aggregation inklusive manglende datoer i mongo

  3. Robomongo forbindelse med Meteor mongodb

  4. Meteor MongoDB finde / hente problemer