Forskjellen mellom Cluster og Non Cluster Index

Cluster vs Non Cluster Index

Indeksene er svært viktige i enhver database. De brukes til å forbedre ytelsen til å hente data fra tabeller. De er logisk og fysisk uavhengige av dataene i de tilhørende tabellene. Derfor kan indekser slippes, gjenskapes og gjenoppbygges uten å påvirke dataene til basisbordene. Oracle-serveren kan automatisk vedlikeholde indeksene uten involvering av en DBA, når de tilhørende tabellene settes inn, oppdateres og slettes. Det finnes flere indekstyper. Her er noen av dem.

1. B-tre indekser

2. Bitmap indekser

3. Funksjonsbaserte indekser

4. Omvendt-nøkkelindekser

5. B-tre klyngeindekser

Hva er et ikke-klusterindeks?

Fra de ovennevnte indekstyper er følgende ikke-klyngede indekser.

• B-treindeks

• Bitmap-indeks

• Funksjonsbasert indeks

• Omvendt nøkkelindekser

B-tre indekser er den mest brukte indeksen type databaser. Hvis CREATE INDEX-kommandoen er utstedt i databasen, oppretter en Oracle-server en b-tre-indeks uten å spesifisere en type. Når en b-treindeks opprettes i en bestemt kolonne, lagrer oracle-serveren verdiene til kolonnen og holder en referanse til den faktiske raden på bordet.

Bitmap indekser opprettes når kolonnedataene ikke er veldig selektive. Det betyr at kolonnedataene har en lav kardinalitet. Disse er spesielt utviklet for datalager, og det er ikke bra å bruke bitmap indekser på svært oppdaterbare eller transaksjonelle tabeller.

Funksjonelle indekser kommer fra Oracle 8i. Her brukes en funksjon i indeksert kolonne. Derfor, i en funksjonell indeks, blir ikke kolonnedata sortert på vanlig måte. Det sorterer verdiene av kolonnene etter å ha brukt funksjonen. Disse er svært nyttige når WHERE nær av spørringen brukes en funksjon.

Omvendt nøkkelindekser er en veldig interessant indekstype. La oss anta at en kolonne inneholder mange unike strengdata som 'cityA', 'cityB', 'cityC' ... etc. Alle verdiene har et mønster. Første fire tegn er de samme og neste deler endres. Så når REVERSE nøkkelindeks opprettes i denne kolonnen, vil Oracle reversere strengen og gjenopprette den i en b-treindeks.

Ovennevnte indekstyper er ikke-klassifiserte indekser. Det betyr at indekserte data lagres utenfor bordet, og en sortert referanse til bordet holdes. 

Hva er en klynget indeks?

Klyngede indekser er en spesiell type indekser. Den lagrer data i henhold til måten å lagre tabelldata fysisk på. Så det kan ikke være mange klyngede indekser for ett bord. Ett bord kan bare ha en klyngeindeks.

Hva er forskjellen mellom Clustered og Non-Clustered indekser?

1. Tabellen kan bare ha en klyngeindeks, men det kan være opptil 249 ikke-klyngede indekser i ett bord.

2. Klynget indeks opprettes automatisk når en primærnøkkel er opprettet, men en ikke-klynget indeks opprettes når en unik nøkkel opprettes.

3. Logisk rekkefølge av den klyngede indeksen samsvarer med den fysiske rekkefølgen av tabelldataene, men i ikke-klyngede indekser gjør den ikke.