Verschil tussen cluster- en non-clusterindex

Cluster vs Non Cluster Index

Indexen zijn zeer belangrijk in elke database. Ze worden gebruikt om de prestaties van het ophalen van gegevens uit tabellen te verbeteren. Ze zijn logisch en fysiek onafhankelijk van de gegevens in de bijbehorende tabellen. Daarom kunnen indexen druppelen, herstellen en herbouwen zonder de gegevens van de basistabellen te beïnvloeden. Oracle-server kan zijn indexen automatisch handhaven zonder betrokkenheid van een DBA, wanneer de bijbehorende tabellen worden ingevoegd, bijgewerkt en verwijderd. Er zijn verschillende indextypes. Hier zijn er een aantal.

1. B-boom indexen

2. Bitmap indexen

3. Functie-gebaseerde indexen

4. Terugkerende indexen

5. B-boom cluster indexen

Wat is een Non-Cluster Index?

Van bovenstaande indextypen zijn de volgende niet-geclusterde indexen.

• B-boom index

• Bitmap index

• Functie gebaseerde index

• Index-indexen

B-boom indexen zijn het meest gebruikte index type databases. Als de opdracht CREATE INDEX is uitgegeven in de database, zonder een type te specificeren, maakt Oracle-server een b-boom index. Wanneer een b-boomindex is gemaakt op een specifieke kolom, slaat Oracle Server de waarden van de kolom op en houdt een verwijzing naar de werkelijke rij van de tabel.

Bitmap-indexen worden gemaakt wanneer de kolomgegevens niet erg selectief zijn. Dat betekent dat de kolomgegevens een lage cardinaliteit hebben. Deze zijn speciaal ontworpen voor data warehouses, en het is niet goed om bitmap indexen te gebruiken op zeer updatable of transactionele tabellen.

Functionele indexen komen van Oracle 8i. Hier wordt een functie in de geïndexeerde kolom gebruikt. Daarom worden, in een functionele index, de kolomgegevens niet op de normale manier gesorteerd. Het sorteert de waarden van de kolommen na het toepassen van de functie. Deze zijn zeer handig wanneer de WHERE dicht bij de geselecteerde query een functie wordt gebruikt.

Index-indexen zijn een zeer interessant indextype. Laten we aannemen dat een kolom veel unieke stringgegevens bevat zoals 'cityA', 'cityB', 'cityC' ... enz. Alle waarden hebben een patroon. De eerste vier tekens zijn hetzelfde en de volgende onderdelen worden veranderd. Dus wanneer REVERSE-sleutelindex is gemaakt in deze kolom, zal Oracle de string omdraaien en herstellen in een b-boom index.

Bovenstaande indextypes zijn NON-CLUSTERED-indexen. Dat betekent dat geïndexeerde gegevens buiten de tabel worden opgeslagen en een gesorteerde verwijzing naar de tabel wordt bewaard.

Wat is een clustered index?

Geclusterde indexen zijn een speciaal type indexen. Het slaat gegevens op volgens de manier om de gegevens van de tafel fysiek op te slaan. Zo kunnen er niet veel geclusterde indexen voor één tafel zijn. Één tafel kan slechts één geclusterde index hebben.

Wat is het verschil tussen geclusterde en niet-geclusterde indexen?

1. Tabel kan slechts één geclusterde index hebben, maar er kunnen maximaal 249 niet-geclusterde indexen in één tabel zijn.

2. Geclusterde index wordt automatisch gecreëerd wanneer een primaire sleutel is gemaakt, maar er wordt een niet-geclusterde index gemaakt wanneer een unieke sleutel wordt gemaakt.

3. De logische volgorde van de geclusterde index komt overeen met de fysieke volgorde van de tabelgegevens, maar in niet-geclusterde indexen doet het niet.