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ší.
Rozdíl mezi Clustered a neshlukovaný index
Clustered vs neshlukovaný index

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 seskupeného indexu

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)

Příklad neshlukovaného indexu

Následující dotaz bude načten rychleji ve srovnání s seskupeným indexem.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Příklad neshlukovaného indexu

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íč.