Co je to index?
Index je klíč vytvořený z jednoho nebo více sloupců v databázi, který zrychluje načítání řádků z tabulky nebo zobrazení. Tento klíč pomáhá databázi jako Oracle, SQL Server, MySQL atd. Rychle najít řádek spojený s hodnotami klíče.
Jsou dva typy indexů:
- Klastrovaný index
- Neskupený index
V tomto výukovém programu se naučíte:
- Co je to index?
- Co je to seskupený index?
- Co je to klastrovaný index?
- Charakteristika seskupeného indexu
- Charakteristika neseskupených indexů
- Příklad seskupeného indexu
- Příklad seskupeného indexu
- Rozdíly mezi seskupeným indexem a indexem bez seskupení
- Výhody seskupeného indexu
- Výhody seskupeného indexu
- Nevýhody seskupeného indexu
- Nevýhody neseskupeného indexu
Co je to seskupený index?
Cluster index je typ indexu, který třídí datové řádky v tabulce podle jejich klíčových hodnot. V databázi existuje pouze jeden seskupený index na tabulku.
Klastrovaný index definuje pořadí, ve kterém jsou data uložena v tabulce, kterou lze třídit pouze jedním způsobem. Pro každou tabulku tedy může existovat pouze jeden seskupený index. V RDBMS obvykle primární klíč umožňuje vytvořit seskupený index založený na tomto konkrétním sloupci.
Co je to klastrovaný index?
Nezeskupený index ukládá data na jednom místě a indexy na jiném místě. Index obsahuje ukazatele na umístění těchto dat. Jedna tabulka může mít mnoho neseskupených indexů, protože index ve seskupeném indexu je uložen na různých místech.
Například kniha může mít více než jeden rejstřík, jeden na začátku, který zobrazuje obsah jednotky knihy, zatímco druhý rejstřík zobrazuje rejstřík termínů v abecedním pořadí.
V poli neobjednávání tabulky je definován index bez shlukování. Tento typ metody indexování vám pomůže zlepšit výkon dotazů, které používají klíče, které nejsou přiřazeny jako primární klíč. Nezeskupený index umožňuje přidat jedinečný klíč pro tabulku.
KLÍČOVÝ ROZDÍL
- Cluster index je typ indexu, který třídí datové řádky v tabulce podle jejich klíčových hodnot, zatímco index bez seskupení ukládá data na jednom místě a indexy na jiném místě.
- Klastrovaný index ukládá datové stránky v listových uzlech indexu, zatímco metoda bez klastrovaného indexu nikdy neukládá datové stránky v listových uzlech indexu.
- Index clusteru nevyžaduje další místo na disku, zatímco index bez seskupení vyžaduje další místo na disku.
- Clusterový index nabízí rychlejší přístup k datům, na druhou stranu index bez shluků je pomalejší.
Charakteristika seskupeného indexu
- Výchozí a tříděné úložiště dat
- Pro index použijte pouze jeden nebo více než jeden sloupec
- Pomáhá vám ukládat data a indexovat společně
- Fragmentace
- Operace
- Clusterované skenování indexu a hledání indexu
- Vyhledávání klíčů
Charakteristika neseskupených indexů
- Ukládejte pouze klíčové hodnoty
- Ukazatele na řádky haldy / seskupeného indexu
- Umožňuje sekundární přístup k datům
- Most k datům
- Operace indexového skenování a indexového vyhledávání
- Můžete vytvořit nehrnutý index pro tabulku nebo zobrazení
- Každý řádek indexu v indexu bez clusterů ukládá hodnotu klíče bez clusterů a vyhledávač řádků
Příklad seskupeného indexu
V níže uvedeném příkladu je SalesOrderDetailID seskupený index. Ukázkový dotaz k načtení dat
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Příklad seskupeného indexu
V níže uvedeném příkladu je vytvořen neclustovaný index na OrderQty a ProductID následujícím způsobem
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
Následující dotaz se načte rychleji ve srovnání s klastrovaným indexem.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Rozdíly mezi seskupeným indexem a indexem bez seskupení
Parametry | Klastrovaný | Neskupené |
---|---|---|
Použít na | Záznamy můžete řadit a ukládat seskupený index fyzicky do paměti podle objednávky. | Nezeskupený index vám pomůže vytvořit logické pořadí pro datové řádky a použije ukazatele pro fyzické datové soubory. |
Metoda ukládání | Umožňuje ukládat datové stránky do listových uzlů indexu. | Tato metoda indexování nikdy neukládá datové stránky v listových uzlech indexu. |
Velikost | Velikost seskupeného indexu je poměrně velká. | Velikost seskupeného indexu je ve srovnání s seskupeným indexem malá. |
Přístup k datům | Rychlejší | Pomalejší ve srovnání s seskupeným indexem |
Další místo na disku | Není požadováno | Vyžaduje se pro samostatné uložení indexu |
Typ klíče | Ve výchozím nastavení jsou primární klíče tabulky seskupený index. | Může být použit s jedinečným omezením v tabulce, které funguje jako složený klíč. |
Hlavní rys | Klastrovaný index může zlepšit výkon načítání dat. | Mělo by být vytvořeno na sloupcích, které se používají ve spojeních. |
Výhody seskupeného indexu
Výhody / výhody seskupeného indexu jsou:
- Klastrované indexy jsou ideální volbou pro rozsah nebo seskupení podle dotazů typu max, min, count
- V tomto typu indexu může hledání přejít přímo do konkrétního bodu v datech, takže odtud můžete pokračovat v sekvenčním čtení.
- Metoda seskupeného indexu používá mechanismus umístění k vyhledání položky indexu na začátku rozsahu.
- Jedná se o efektivní metodu pro vyhledávání rozsahu, když je požadován rozsah hodnot klíčových klíčů.
- Pomůže vám minimalizovat přenosy stránek a maximalizovat zásahy do mezipaměti.
Výhody seskupeného indexu
Klady použití neseskupeného indexu jsou:
- Non-clustering index vám pomůže rychle načíst data z databázové tabulky.
- Pomůže vám vyhnout se režijním nákladům spojeným s klastrovaným indexem
- Tabulka může mít v RDBMS více neseskupených indexů. Lze jej tedy použít k vytvoření více než jednoho indexu.
Nevýhody seskupeného indexu
Zde jsou nevýhody / nevýhody použití seskupeného indexu:
- Spousta vložek v nesekvenčním pořadí
- Klastrovaný index vytváří spoustu neustálých rozdělení stránek, která zahrnují datovou stránku i stránky indexu.
- Extra práce pro SQL pro vkládání, aktualizace a mazání.
- Seskupený index trvá déle, než se aktualizují záznamy, když se změní pole v seskupeném indexu.
- Listové uzly většinou obsahují datové stránky v seskupeném indexu.
Nevýhody neseskupeného indexu
Tady jsou nevýhody / nevýhody používání neseskupeného indexu:
- Neseskupený index vám pomáhá ukládat data v logickém pořadí, ale neumožňuje fyzicky řadit datové řádky.
- Proces vyhledávání na nekupovaném indexu se stává nákladným.
- Pokaždé, když je klíč klastru aktualizován, je nutná odpovídající aktualizace na ne-seskupeném indexu, protože ukládá klíč klastru.