Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 5609|Odpoveď: 2

Zobrazenie a vytváranie indexov v MongoDB

[Kopírovať odkaz]
Zverejnené 11. 2. 2022 17:46:29 | | | |
Index MongoDB

Bez indexov by MongoDB musel prehľadávať každý súbor v kolekcii a vybrať tie záznamy, ktoré spĺňajú kritériá dotazu pri čítaní dát.

Takáto efektivita vyhľadávania pri prehľadávaní celej sady je veľmi nízka, najmä pri spracovaní veľkého množstva dát, dotaz môže trvať desiatky sekúnd alebo dokonca minút, čo je veľmi osudné pre výkon webovej stránky.

Indexy sú špeciálne dátové štruktúry uložené v kolekcii dát, ktoré je možné ľahko prečítať cez index, a indexy sú štruktúra, ktorá triedi hodnoty jedného alebo viacerých stĺpcov v databázovej tabuľke.

Revízia:

Bežné dotazovacie príkazy MongoDB
https://www.itsvse.com/thread-10169-1-1.html

Opýtajte sa na plán realizácie

Príklady výrokov:

Bez vytvorenia indexu (winningPlan:COLLSCAN), ako je znázornené na obrázku nižšie:



funkcia explain() môže tiež prijímať rôzne parametre a podrobnejší plán dotazu si môžete pozrieť nastavením rôznych parametrov.

Parametre zahŕňajú:queryPlanner (predvolené)、Štatistiky vykonania、Všetky plányVykonanie

Execute explain("executionStats") a zistíte, že v pláne vykonania je viac štatistík.

parametervýznam
totalKeysExaminedPočet indexových skenov
totalDocsExaminedPočet skenov dokumentov
nVrátenéPočet vrátených výsledkov
executionTimeMillisVykonávanie je časovo náročné
PopravaÚspechČi bola poprava úspešná

Vytvorte index

MongoDB používa metódu createIndex() na vytváranie indexov.

Upozorňujeme, že pred verziou 3.0.0 bola metóda vytvárania indexu db.collection.ensureIndex(), a neskoršie verzie používali metódu db.collection.createIndex().

Vytvorte jeden index


Vytvorte kompozitný index

V syntaxi je kľúčová hodnota indexové pole, ktoré chcete vytvoriť, 1 je špecifikované na vytvorenie indexu vzostupne a ak chcete vytvoriť index v zostupnom poradí, môžete špecifikovať -1.pozadie na špecifikovanie, že indexy sa vytvárajú na pozadí, teda pridať voliteľný parameter "pozadie". "pozadie" predvolene nastaví na false.

Indexy dotazov

Príkaz je nasledovný:



Vymazať index

Vymazať všetky indexy

Vymažte špecifikovaný index

(Koniec)




Predchádzajúci:Ako obmedziť registráciu taiwanských používateľov, zverejňovanie informácií podľa potreby a žiadanie o rady, ako písať.
Budúci:[Skutočný boj]. NET/C# exportuje cache pomocou StackExchange.Redis fuzzy query
 Prenajímateľ| Zverejnené 11. 2. 2022 17:49:16 |
Pomalý proces analýzy dopytov:

1. Použite pomalý dotazovací záznam (system.profile) na nájdenie príkazov presahujúcich 200 ms

2. Potom použite .explain() na analýzu počtu ovplyvnených riadkov a analýzu, prečo presahuje 200 ms.

3. Rozhodnite sa, či potrebujete pridať index

Povolte pomalý dotaz:


Parameter:

0: Zatvorené, žiadne údaje sa nezbierajú.
1: Zber pomalých dotazových dát, predvolená doba je 100 milisekúnd.
2: Zhromaždiť všetky údaje

Preskúmajte výsledky:


Poznámka: Indexy možno v podstate považovať za trvalé v pamäti, ak množstvo dát dosiahne 100 miliónov, čím menší počet indexov, tým lepšie, pretože zaberajú veľké množstvo pamäte. Podľa internetu tvorí 1 milión indexov približne 50 miliónov pamäte. Ak je to 100 miliónov, bude to zaberať 5G pamäť.

Zverejnené 13. 2. 2022 16:30:52 |
učený...
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com