sql >> Databasteknik >  >> NoSQL >> MongoDB

I MongoDB, om ett index är på 3 fält, kan vi använda det indexet när vi frågar på 2 fält? (jokertecken i det tredje fältet)

Det är B-trädindex, så de kan användas för en prefixdelmängd av de inblandade kolumnerna. Om du inte har de inledande kolumnerna är en indexintervallsskanning (operationen som ett B-trädsindex främst används för) inte längre möjlig. Det kan finnas andra sätt att fortfarande använda indexet (Oracle har till exempel snabba fullständiga skanningar och hoppa över skanningar), men vanligtvis kommer indexet inte att användas.

Detta resonemang gäller för allt som använder B-trädindex, relationell DB eller inte.

Återigen, detta beror inte på typen av kolumn, utan på ordningen på kolumner i indexet. Du måste ha de inledande kolumnerna (i ditt fall behöver du page_type). Om du har många frågor utan page_type, överväg att återskapa indexet med page_type som sista kolumn (vilket naturligtvis också kan ha en negativ inverkan på andra frågor). I allmänhet behöver du veta vilken typ av frågor du kommer att köra innan du kan designa indexen.




  1. Skapar första användare i MongoDB 3.2.

  2. Kan man skapa en relationsdatabas med MongoDB?

  3. Vad är maxstorleken på samlingen i mongodb

  4. Key-Value Database med Java-klient