Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 5609|Odgovoriti: 2

MongoDB ogled in ustvarjanje indeksov

[Kopiraj povezavo]
Objavljeno na 11. 02. 2022 17:46:29 | | | |
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:

MongoDB pogosti ukazi za poizvedbe
https://www.itsvse.com/thread-10169-1-1.html

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.

parameterpomen
totalKeysExaminedŠtevilo indeksnih skenov
totalDocsExaminedŠtevilo skenov dokumentov
nVrnjenŠtevilo vrnjenih rezultatov
executionTimeMillisIzvajanje je časovno zahtevno
UsmrtitevUspehAli 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)




Prejšnji:Kako omejiti tajvanske uporabnike pri registraciji, objavljanje informacij po lastni presoji in prositi za nasvete, kako pisati.
Naslednji:[Dejanski boj]. NET/C# izvozi predpomnilnik z uporabo StackExchange.Redis zamegljena poizvedba
 Najemodajalec| Objavljeno na 11. 02. 2022 17:49:16 |
Počasen proces analize poizvedb:

1. Uporabite počasni dnevnik poizvedb (system.profile) za iskanje ukazov, ki presegajo 200 ms

2. Nato uporabite .explain() za analizo števila prizadetih vrstic in analizo, zakaj presega 200ms

3. Odločite se, ali morate dodati indeks

Omogočite počasno poizvedbo:


Parameter:

0: Zaprto, podatki se ne zbirajo.
1: Zbiranje podatkov o počasnih poizvedbah je privzeto 100 milisekund.
2: Zberite vse podatke

Preberite rezultate:


Opomba: Indekse lahko v bistvu označimo za trajne v pomnilniku; če količina podatkov doseže 100 milijonov, manjše število indeksov je bolje, saj zavzamejo veliko pomnilnika. Po podatkih interneta milijon indeksov predstavlja približno 50 milijonov pomnilnika. Če je 100 milijonov, bo zasedal 5G pomnilnik.

Objavljeno na 13. 02. 2022 16:30:52 |
Naučil...
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com