Rozdíl mezi Clustered a neshlukovaný index
Klíčový rozdíl mezi Clustered a neshlukovaný index
- Clusterový index je typ indexu, který třídí datové řádky v tabulce podle jejich klíčových hodnot, zatímco Non-clustered index ukládá data na jednom místě a indexy na jiném místě.
- Clustered index ukládá datové stránky do koncových uzlů indexu, zatímco metoda Non-clustered index nikdy neukládá datové stránky do koncových uzlů indexu.
- Index clusteru nevyžaduje další místo na disku, zatímco index bez clusteru vyžaduje další místo na disku.
- Cluster index nabízí rychlejší přístup k datům, na druhou stranu Non-clustered index je pomalejší.
Co je to index?
Index je klíč vytvořený z jednoho nebo více sloupců v databázi, který urychluje načítání řádků z tabulky nebo pohledu. Tento klíč pomáhá databázi jako Oracle, SQL Server, MySQLatd., abyste rychle našli řádek spojený s hodnotami klíče.
Dva typy indexů jsou:
- Clustered Index
- NeClustered Index
Co je to Clustered index?
Cluster index je typ indexu, který třídí datové řádky v tabulce podle jejich klíčových hodnot. V databázi je 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 neklastrovaný index?
Neklastrovaný 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 indexů bez clusterů, protože index v indexu bez clusterů 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 knižní jednotky, zatímco druhý rejstřík ukazuje rejstřík pojmů v abecedním pořadí.
V neřazeném poli tabulky je definován neshlukující index. Tento typ metody indexování vám pomáhá zlepšit výkon dotazů, které používají klíče, které nejsou přiřazeny jako primární klíč. Neklastrovaný index umožňuje přidat jedinečný klíč pro tabulku.
Charakteristické pro Clustered Index
- Výchozí a tříděné úložiště dat
- Pro index použijte pouze jeden nebo více sloupců
- Pomáhá ukládat data a index dohromady
- Roztříštění
- Operace
- Clustered index scan a index search
- Vyhledávání klíčů
Charakteristika neshlukovaných indexů
- Ukládat pouze klíčové hodnoty
- Ukazatele na haldu/Clustered Indexové řádky
- Umožňuje přístup k sekundárním datům
- Most k datům
- Operafunkce Index Scan a Index Seek
- Můžete vytvořit neklastrovaný index pro tabulku nebo pohled
- Každý řádek indexu v neklastrovaném indexu ukládá hodnotu klíče bez klastrů a lokátor řádku
Clustered vs. Neklastrovaný index v SQL: Klíčové rozdíly
parametry | Clustered | Neshlukovaný |
---|---|---|
Použij pro | Záznamy můžete třídit a ukládat seskupený index fyzicky do paměti podle objednávky. | Neklastrovaný index vám pomůže vytvořit logické pořadí pro datové řádky a používá ukazatele pro fyzické datové soubory. |
Způsob 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 do listových uzlů indexu. |
Velikost | Velikost seskupeného indexu je poměrně velká. | Velikost neseskupené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 | Požadováno k samostatnému uložení indexu |
Typ klíče | Ve výchozím nastavení je primární klíč tabulky a Clustered Index. | Může být použit s jedinečným omezením na stole, který funguje jako složený klíč. |
Hlavním rysem | Clusterový index může zlepšit výkon načítání dat. | Měl by být vytvořen na sloupcích, které se používají ve spojeních. |
Příklad seskupeného indexu
V níže uvedeném příkladu je SalesOrderDetailID seskupený index. Ukázkový dotaz pro načtení dat
SELECT CarrierTrackingNumber, UnitPrice FROM SalesData WHERE SalesOrderDetailID = 6
Příklad neklastrovaného indexu
V níže uvedeném příkladu je index bez klastrů vytvořen na OrderQty a ProductID následovně
CREATE INDEX myIndex ON SalesData (ProductID, OrderQty)
Následující dotaz bude načten rychleji ve srovnání s seskupeným indexem.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
výhody Clustered Index
Výhody/přínosy seskupeného indexu jsou:
- Clustered indexy jsou ideální volbou pro rozsah nebo skupinu s dotazy typu max, min, count
- V tomto typu indexu může vyhledávání přejít přímo k určitému bodu v datech, takže odtud můžete pokračovat ve čtení postupně.
- Clustered index metoda používá mechanismus umístění k nalezení položky indexu na začátku rozsahu.
- Je to efektivní metoda pro hledání rozsahu, když je požadován rozsah hodnot vyhledávacího klíče.
- Pomáhá vám minimalizovat přenosy stránek a maximalizovat přístupy do mezipaměti.
Výhody neshlukovaného indexu
Výhody použití neshlukovaného indexu jsou:
- Neklastrující 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 seskupeným indexem
- Tabulka může mít více indexů bez klastrů RDBMS. Lze jej tedy použít k vytvoření více než jednoho indexu.
Nevýhody Clustered Index
Zde jsou nevýhody/nevýhody použití seskupeného indexu:
- Spousta vložek v nesekvenčním pořadí
- Seskupený index vytváří mnoho konstantních rozdělení stránek, které zahrnuje datovou stránku i stránky indexu.
- Práce navíc pro SQL pro vložení, aktualizace a odstranění.
- Při změně polí v seskupeném indexu trvá aktualizace záznamů seskupeného indexu déle.
- Listové uzly většinou obsahují datové stránky v seskupeném indexu.
Nevýhody neshlukovaného indexu
Zde jsou nevýhody/nevýhody použití indexu bez klastrů:
- Neklastrovaný index vám pomáhá ukládat data v logickém pořadí, ale neumožňuje fyzicky třídit datové řádky.
- Proces vyhledávání na indexu bez klastrů se stává nákladným.
- Pokaždé, když je klastrovací klíč aktualizován, je vyžadována odpovídající aktualizace pro neklastrovaný index, protože ukládá klastrovací klíč.