Verschil tussen Clustered en niet-geclusterde index

Belangrijkste verschil tussen Clustered en niet-geclusterde index

  • Een clusterindex is een type index dat de gegevensrijen in de tabel sorteert op basis van hun sleutelwaarden, terwijl de niet-geclusterde index de gegevens op รฉรฉn locatie en de indexen op een andere locatie opslaat.
  • Clustered index slaat gegevenspagina's op in de bladknooppunten van de index, terwijl de Non-clustered index-methode nooit gegevenspagina's opslaat in de bladknooppunten van de index.
  • Voor de clusterindex is geen extra schijfruimte nodig, terwijl voor de niet-geclusterde index wel extra schijfruimte nodig is.
  • Cluster index biedt snellere toegang tot gegevens, maar de niet-geclusterde index is langzamer.
Verschil tussen Clustered en niet-geclusterde index
Clustered vs Niet-geclusterde 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 hun sleutelwaarden. In de database is er slechts รฉรฉn geclusterde index per tabel.

Een geclusterde index definieert de volgorde waarin gegevens in de tabel worden opgeslagen, die slechts op รฉรฉn manier kan worden gesorteerd. Er kan dus slechts รฉรฉn geclusterde index voor elke tabel zijn. In een RDBMS kunt u met de primaire sleutel doorgaans een geclusterde index maken op basis van die specifieke kolom.

Wat is een niet-geclusterde index?

Een niet-geclusterde index slaat de gegevens op รฉรฉn locatie op en indices op een andere locatie. De index bevat pointers naar de locatie van die gegevens. Een enkele tabel kan meerdere niet-geclusterde indexen hebben, omdat een index in de niet-geclusterde index op verschillende plaatsen is opgeslagen.

Een boek kan bijvoorbeeld meer dan รฉรฉn index hebben. Eรฉn aan het begin geeft de inhoud van het boek per eenheid weer, terwijl de tweede index de index van termen in alfabetische volgorde weergeeft.
Een niet-clusterende index wordt gedefinieerd in het niet-ordende veld van de tabel. Dit type indexeringsmethode helpt u de prestaties te verbeteren van query's die sleutels gebruiken die niet als primaire sleutel zijn toegewezen. Met een niet-geclusterde 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
  • Clustered indexscan en indexzoekopdracht
  • Sleutel opzoeken

Kenmerken van niet-geclusterde indexen

  • Bewaar alleen sleutelwaarden
  • Aanwijzingen naar heap/Clustered Indexrijen
  • Staat secundaire gegevenstoegang toe
  • Brug naar de gegevens
  • Operavan Index Scan en Index Seek
  • U kunt een niet-geclusterde index voor een tabel of weergave maken
  • Elke indexrij in de niet-geclusterde index slaat de niet-geclusterde sleutelwaarde en een rijlocator op

Clustered vs. niet-geclusterde index in SQL: belangrijkste verschillen

Kenmerken Clustered Niet-geclusterd
Gebruik voor U kunt de records sorteren en de geclusterde index fysiek in het geheugen opslaan op basis van de volgorde. Met een niet-geclusterde index kunt u een logische volgorde voor gegevensrijen creรซren en worden er verwijzingen naar fysieke gegevensbestanden gebruikt.
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.
Grootte De omvang van de geclusterde index is vrij groot. De omvang van de niet-geclusterde index is klein vergeleken met de geclusterde index.
Toegang tot gegevens Sneller Langzamer vergeleken met de geclusterde 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 Een geclusterde 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 geclusterde index

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

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Voorbeeld van een geclusterde index

Een voorbeeld van een niet-geclusterde 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-geclusterde index

De volgende query wordt sneller opgehaald vergeleken met de geclusterde index.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Voorbeeld van een niet-geclusterde index

Voordelen Clustered Index

De voor- en nadelen van de geclusterde 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-geclusterde index

Voordelen van het gebruik van een niet-geclusterde index zijn:

  • Met een niet-clusterende index kunt u snel gegevens uit de databasetabel ophalen.
  • Helpt u de overheadkosten te vermijden die gepaard gaan met de geclusterde index
  • Een tabel kan meerdere niet-geclusterde indexen hebben in RDBMS. Het kan dus worden gebruikt om meer dan รฉรฉn index te maken.

Nadelen van Clustered Index

Hier zijn de voor- en nadelen van het gebruik van geclusterde indexen:

  • Veel inzetstukken in niet-sequentiรซle volgorde
  • Een geclusterde index creรซert veel constante paginasplitsingen, die zowel gegevenspagina's als indexpagina's bevatten.
  • Extra werk voor SQL voor invoegingen, updates en verwijderingen.
  • Een geclusterde index heeft meer tijd nodig om records bij te werken wanneer de velden in de geclusterde index worden gewijzigd.
  • De bladknooppunten bevatten voornamelijk gegevenspagina's in de geclusterde index.

Nadelen van niet-geclusterde index

Hier zijn de voor- en nadelen van het gebruik van niet-geclusterde indexen:

  • Met een niet-geclusterde index kunt u gegevens in een logische volgorde opslaan, maar u kunt de gegevensrijen niet fysiek sorteren.
  • Het opzoeken van gegevens op een niet-geclusterde index wordt kostbaar.
  • Elke keer dat de clustersleutel wordt bijgewerkt, is een overeenkomstige update vereist op de niet-geclusterde index, omdat deze de clustersleutel opslaat.

Vat dit bericht samen met: