Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 5609|Odpověď: 2

MongoDB Prohlížení a vytváření indexů

[Kopírovat odkaz]
Zveřejněno 11.02.2022 17:46:29 | | | |
Index MongoDB

Bez indexů by MongoDB musel prohledat každý soubor v kolekci a vybrat ty záznamy, které splňují kritéria dotazu při čtení dat.

Tento druh efektivity dotazů při prohledávání celé sady je velmi nízký, zejména při zpracování velkého množství dat, dotaz může trvat desítky sekund nebo dokonce minuty, což je velmi škodlivé pro výkon webu.

Indexy jsou speciální datové struktury uložené v souboru dat, které lze snadno přečíst přes index, a indexy jsou struktura, která třídí hodnoty jednoho nebo více sloupců v databázové tabulce.

Přezkoumání:

Běžné dotazovací příkazy MongoDB
https://www.itsvse.com/thread-10169-1-1.html

Dotazujte se na plán provedení

Příklady tvrzení:

Bez vytvoření indexu (winningPlan:COLLSCAN), jak je znázorněno na obrázku níže:



funkce explain() může také přijímat různé parametry a můžete zobrazit podrobnější plán dotazu nastavením různých parametrů.

Parametry zahrnují:queryPlanner (výchozí)、Statistiky exekuce、všechny plányRealizace

Execute explain("executionStats") a zjistíte, že v plánu provádění je více statistik.

parametrvýznam
totalKeysExaminedPočet indexových skenů
totalDocsExaminedPočet skenů dokumentů
nVrácenoPočet vrácených výsledků
executionTimeMillisProvádění je časově náročné
RealizaceÚspěchZda byla poprava úspěšná

Vytvořte index

MongoDB používá metodu createIndex() pro vytváření indexů.

Všimněte si, že před verzí 3.0.0 byla metoda vytváření indexu db.collection.ensureIndex(), a pozdější verze používaly metodu db.collection.createIndex().

Vytvořte jeden index


Vytvořte složený index

V syntaxi je klíčová hodnota pole indexu, které chcete vytvořit, 1 je určeno pro vytvoření indexu vzestupně, a pokud chcete vytvořit index sestupně, můžete zadat -1.pozadí pro specifikaci, že indexy jsou vytvářeny na pozadí, tedy přidat volitelný parametr "background". "background" se výchozím nastavením nastaví na false.

Indexy dotazů

Příkaz je následující:



Smažte index

Smažte všechny indexy

Smažte zadaný index

(Konec)




Předchozí:Jak omezit tchajwanské uživatele v registraci, zveřejňování informací podle libosti a žádání o rady, jak psát.
Další:[Skutečný boj]. NET/C# exportuje cache pomocí StackExchange.Redis fuzzy query
 Pronajímatel| Zveřejněno 11.02.2022 17:49:16 |
Pomalý proces analýzy dotazů:

1. Použijte pomalý dotazovací log (system.profile) k nalezení příkazů přesahujících 200 ms.

2. Poté použijte .explain() k analýze počtu ovlivněných řádků a analýze, proč překračuje 200 ms.

3. Rozhodněte se, zda je potřeba přidat index

Povolit pomalý dotaz:


Parametr:

0: Uzavřeno, žádná data nejsou shromažďována.
1: Sbírejte pomalá data dotazů, výchozí je 100 milisekund.
2: Shromáždit všechna data

Projděte výsledky:


Poznámka: Indexy lze v podstatě považovat za trvalé v paměti, pokud množství dat dosáhne 100 milionů, čím menší je počet indexů, tím lépe, protože zabírají velké množství paměti. Podle internetu představuje 1 milion indexů přibližně 50 milionů paměti. Pokud je to 100 milionů, pak bude zabírat 5G paměť.

Zveřejněno 13.02.2022 16:30:52 |
učený...
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com