sql >> Databáze >  >> RDS >> Oracle

Jak víte, co je dobrý index?

To záleží na tom, co máte na mysli pod pojmem „dobré“ a „špatné“. V zásadě si musíte uvědomit, že každý index, který přidáte, zvýší výkon při jakémkoli vyhledávání v tomto sloupci (takže přidání indexu do sloupce 'příjmení' tabulky osob zvýší výkon u dotazů, které mají v sobě "kde příjmení ="), ale snížit výkon zápisu v celé tabulce.

Důvodem je, že když přidáte nebo aktualizujete řádek, musí se přidat nebo aktualizovat jak samotná tabulka, tak každý index, jehož je daný řádek členem. Pokud tedy máte v tabulce pět indexů, každý dodatek se musí zapsat na šest míst – pět indexů a tabulka – a aktualizace se může v nejhorším případě dotknout až šesti míst.

Vytvoření indexu je pak balancováním mezi rychlostí dotazu a rychlostí zápisu. V některých případech, jako je datamart, který je načten daty pouze jednou týdně v rámci noční úlohy, ale dotazuje se tisíckrát denně, má velký smysl přetížit indexy a urychlit dotazy co nejvíce. V případě online systémů pro zpracování transakcí však chcete zkusit najít mezi nimi rovnováhu.

Stručně řečeno, přidejte indexy do sloupců, které se často používají ve vybraných dotazech, ale snažte se jich nepřidávat příliš mnoho, a proto nejprve přidejte nejpoužívanější sloupce.

Poté je to otázka zátěžového testování, aby se zjistilo, jak výkon reaguje ve výrobních podmínkách, a spousta úprav, aby se našla přijatelná rovnováha.



  1. MariaDB JSON_EXTRACT() Vysvětleno

  2. Jak zacházet s výjimkami PDO

  3. Uložená procedura - vrátí identitu jako výstupní parametr nebo skalár

  4. Jak upgradovat MySQL 5.5 na 5.6 na Ubuntu 14.04