Indeks MongoDB
Brez indeksov bi moral MongoDB pregledati vsako datoteko v zbirki in izbrati tiste zapise, ki izpolnjujejo kriterije poizvedb pri branju podatkov.
Takšna učinkovitost poizvedb pri pregledovanju celotnega nabora je zelo nizka, še posebej pri obdelavi velike količine podatkov, poizvedba lahko traja več deset sekund ali celo minut, kar je zelo usodno za delovanje spletne strani.
Indeksi so posebne podatkovne strukture, shranjene v zbirki podatkov, ki jih je mogoče enostavno prebrati preko indeksa, indeksi pa so struktura, ki sortira vrednosti enega ali več stolpcev v tabeli podatkovne baze.
Pregled:
Poizvedba o načrtu izvedbe
Primeri izjav:
Brez ustvarjanja indeksa (winningPlan:COLLSCAN), kot je prikazano na spodnji sliki:
funkcija explain() lahko prav tako prejme različne parametre, bolj podroben načrt poizvedbe pa si lahko ogledate z nastavitvijo različnih parametrov.
Parametri vključujejo:queryPlanner (privzeto)、Statistika izvršitve、Vsi načrtiIzvedba
Execute explain("executionStats") in ugotovili boste, da je v načrtu izvajanja več statistik.
| parameter | pomen | | totalKeysExamined | Število indeksnih skenov | | totalDocsExamined | Število skenov dokumentov | | nVrnjen | Število vrnjenih rezultatov | | executionTimeMillis | Izvajanje je časovno zahtevno | | UsmrtitevUspeh | Ali je bila usmrtitev uspešna |
Ustvarite indeks
MongoDB uporablja metodo createIndex() za ustvarjanje indeksov.
Upoštevajte, da je bila pred različico 3.0.0 metoda ustvarjanja indeksov db.collection.ensureIndex(), kasnejše različice pa so uporabljale metodo db.collection.createIndex().
Ustvarite en sam indeks
Ustvarite sestavljen indeks
V sintaksi je ključna vrednost polje indeksa, ki ga želite ustvariti, 1 je določen za ustvarjanje indeksa v naraščajočem vrstnem redu, in če želite ustvariti indeks v padajočem vrstnem redu, lahko določite -1.ozadje, ki določa, da se indeksi ustvarjajo v ozadju, torej dodajte opcijski parameter "ozadje". "ozadje" se privzeto spremeni na false.
Indeksi poizvedb
Ukaz je naslednji:
Izbriši indeks
Izbriši vse indekse
Izbriši določeni indeks
(Konec)
|