Verschil tussen Clustered en niet-clustered-index

Belangrijkste verschil tussen Clustered en niet-clustered Index

  • A cluster index is een type index dat de gegevensrijen in de tabel sorteert op basis van hun sleutelwaarden, terwijl de niet-clustered index slaat de gegevens op de ene locatie op en de indexen op een andere locatie.
  • Clustered index slaat gegevenspagina's op in de bladknooppunten van de index, terwijl de niet-clusterDe ed-indexmethode slaat nooit gegevenspagina's op in de bladknooppunten van de index.
  • De cluster index vereist geen extra schijfruimte, terwijl de niet-clustered index vereist extra schijfruimte.
  • Cluster index biedt snellere gegevenstoegang, aan de andere kant biedt de niet-clustered-index is langzamer.
Verschil tussen Clustered en niet-clustered Index
Clustered versus niet-clustered Index

Wat is een index?

Een index is een sleutel die is opgebouwd uit een of meer kolommen in de database en die het ophalen van rijen uit de tabel of weergave versnelt. Deze sleutel helpt een database zoals Oracle, SQL-server, MySQL, enz. om snel de rij te vinden die aan sleutelwaarden is gekoppeld.

Er zijn twee soorten indexen:

  • Clustered Index
  • Niet-Clustered Index

Wat is een Clustered-index?

Cluster index is een type index dat de gegevensrijen in de tabel sorteert op basis van hun sleutelwaarden. In de database is er maar één clustered-index per tafel.

A clustered index definieert de volgorde waarin gegevens in de tabel worden opgeslagen, die slechts op één manier kan worden gesorteerd. Er kan dus maar één zijn clustered-index voor elke tabel. In een RDBMS kunt u met de primaire sleutel meestal een clustered-index op basis van die specifieke kolom.

Wat is niet-clustered-index?

Een niet-clustered index slaat de gegevens op de ene locatie op en de indexen op een andere locatie. De index bevat verwijzingen naar de locatie van die gegevens. Een enkele tabel kan veel niet-clustered-indexen als index in de niet-clustered-index wordt op verschillende plaatsen opgeslagen.

Een boek kan bijvoorbeeld meer dan één index hebben, één aan het begin die de inhoud van een boekeenheid weergeeft wise terwijl de tweede index de index van termen in alfabetische volgorde toont.
Een niet-clusterDe index wordt gedefinieerd in het niet-ordende veld van de tabel. Met dit type indexeringsmethode kunt u de prestaties verbeteren van query's die sleutels gebruiken die niet als primaire sleutel zijn toegewezen. Een niet-clusterMet ed index kunt u een unieke sleutel voor een tabel toevoegen.

Een karaktereigenschap van Clustered Index

  • Standaard en gesorteerde gegevensopslag
  • Gebruik slechts één of meer kolommen voor een index
  • Helpt u gegevens en index samen op te slaan
  • Fragmentatie
  • Operations
  • Clustered indexscan en indexzoekopdracht
  • Sleutel opzoeken

Kenmerken van niet-clustered-indexen

  • Bewaar alleen sleutelwaarden
  • Aanwijzingen naar heap/Clustered Indexrijen
  • Staat secundaire gegevenstoegang toe
  • Brug naar de gegevens
  • Operavan Index Scan en Index Seek
  • Je kunt een non aanmakenclustered-index voor een tabel of weergave
  • Elke indexrij in de nonclustered index slaat de non opclustered-sleutelwaarde en een rijlocator

Clustered versus niet-clustered-index in SQL: belangrijkste verschillen

parameters Clustered Niet-clustered
Gebruik voor U kunt de records sorteren en opslaan clustered-index fysiek in het geheugen volgens de volgorde. Een niet-clustered index helpt u bij het creëren van een logische volgorde voor gegevensrijen en gebruikt verwijzingen voor fysieke gegevensbestanden.
Methode voor opslaan Hiermee kunt u gegevenspagina's opslaan in de bladknooppunten van de index. Deze indexeringsmethode slaat nooit gegevenspagina's op in de bladknooppunten van de index.
Maat De grootte van de clustered-index is vrij groot. De grootte van de niet-clustered-index is klein in vergelijking met de clustered-index.
Toegang tot gegevens Sneller Langzamer vergeleken met de clustered-index
Extra schijfruimte Niet verplicht Vereist om de index afzonderlijk op te slaan
Type sleutel Standaard is de primaire sleutel van de tabel a Clustered Index. Het kan worden gebruikt met unieke beperkingen op de tafel die als samengestelde sleutel fungeert.
belangrijkste kenmerk A clustered index kan de prestaties van het ophalen van gegevens verbeteren. Het moet worden gemaakt op kolommen die in joins worden gebruikt.

Een voorbeeld van een clustered-index

In het onderstaande voorbeeld is SalesOrderDetailID de clustered-index. Voorbeeldquery om gegevens op te halen

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Voorbeeld van een clustered-index

Een voorbeeld van een niet-clustered-index

In het onderstaande voorbeeld wordt als volgt een niet-geclusterde index gemaakt op OrderQty en ProductID

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

Voorbeeld van een niet-clustered-index

De following zoekopdracht zal sneller worden opgehaald in vergelijking met de clustered-index.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Voorbeeld van een niet-clustered-index

Voordelen Clustered Index

De voor-/voordelen van de clustered-index zijn:

  • Clustered-indexen zijn een ideale optie voor bereik of groeperen op met query's van het type max, min, count
  • Bij dit type index kan een zoekopdracht rechtstreeks naar een specifiek punt in de gegevens gaan, zodat u vanaf daar opeenvolgend kunt blijven lezen.
  • ClusterDe ed-indexmethode maakt gebruik van een locatiemechanisme om de indexinvoer aan het begin van een bereik te lokaliseren.
  • Het is een effectieve methode voor het zoeken naar bereik wanneer er om een ​​bereik van zoeksleutelwaarden wordt gevraagd.
  • Helpt u om pagina-overdrachten te minimaliseren en de cachehits te maximaliseren.

Voordelen van niet-clustered-index

Voordelen van het gebruik van niet-clustered-index zijn:

  • Een niet-clusterMet de index kunt u snel gegevens uit de databasetabel ophalen.
  • Helpt u de overheadkosten te vermijden die gepaard gaan met de clustered-index
  • Een tabel kan meerdere niet-clustered-indexen in RDBMS. Het kan dus worden gebruikt om meer dan één index te maken.

Nadelen van Clustered Index

Hier zijn de nadelen/nadelen van het gebruik clustered-index:

  • Veel inzetstukken in niet-sequentiële volgorde
  • A clustered index creëert veel constante paginasplitsingen, die zowel gegevenspagina's als indexpagina's omvatten.
  • Extra werk voor SQL voor invoegingen, updates en verwijderingen.
  • A clustered index duurt langer om records bij te werken wanneer de velden in de clustered-index zijn gewijzigd.
  • De bladknooppunten bevatten meestal gegevenspagina's in de clustered-index.

Nadelen van niet-clustered-index

Hier volgen de nadelen/nadelen van het gebruik van niet-clustered-index:

  • Een niet-clustered index helpt u gegevens in een logische volgorde op te slaan, maar staat niet toe dat gegevensrijen fysiek worden gesorteerd.
  • Opzoekproces op niet-clustered-index wordt kostbaar.
  • Elke keer dat clusterwordt bijgewerkt, is een overeenkomstige update vereist op de niet-clustered-index terwijl deze de clustersleutel.