De indices zijn essentieel vereist voor een efficiënte handhaving van integriteitsbeperkingen en een efficiënte verwerking van vragen en transacties. Deze worden gemaakt op tabellen en weergaven. Bijvoorbeeld, de indices die worden gebruikt in boeken die een gebruiker faciliteren om snel toegang te krijgen tot de inhoud van een boek, op dezelfde manier hebben we de indices op de SQL.
Vergelijkingstabel
Basis voor vergelijking | Geclusterde index | Niet-geclusterde index |
---|---|---|
basis- | Bepaalt de opslagvolgorde van de rijen in een tabel als geheel. | Bepaalt de opslagvolgorde van de rijen in een tabel met behulp van een afzonderlijke fysieke structuur. |
Aantal toegestane indexen per tabel | Slechts één geclusterde index | Meerdere niet-geclusterde indices |
Toegang tot gegevens | sneller | Langzamer vergeleken met de geclusterde index |
Extra schijfruimte | Niet nodig | Vereist om de indices afzonderlijk op te slaan |
Definitie van geclusterde index
De geclusterde index wordt in principe gebruikt om de rijen in een tabel te bestellen. Een tabel kan slechts één geclusterde index bevatten, omdat de rijen in een tabel in slechts één volgorde kunnen worden gesorteerd, maar er zijn manieren om een samengestelde geclusterde index te maken . De kolommen zijn opgenomen in de geclusterde index en de logische of geïndexeerde volgorde van de sleutelwaarden is dezelfde als de fysiek opgeslagen volgorde van de overeenkomstige rijen. Als er geen geclusterde index voor de gegevens is, wordt deze in een heap opgeslagen.
Het opnemen van gegevens in een heap kost veel tijd, waarbij elk item in een tabel wordt gescand om toegang te krijgen tot de gewenste gegevens. In de tafelscan kon niet worden nagegaan of er meer overeenkomsten beschikbaar waren of niet. Deze methode was dus erg inefficiënt.
Tijdens het gebruik van een geclusterde index is de toegang tot gegevens sneller en systematischer wanneer de tabel in een bepaalde volgorde is georganiseerd. Het wordt gedefinieerd in het bestelveld van de tabel. De zoeksleutel die wordt gebruikt, geeft de volgorde aan van het bestand of de tabel. Een geclusterde index wordt automatisch gemaakt wanneer een primaire sleutel voor een tabel is gedefinieerd.
Definitie van niet-geclusterde index
De niet-geclusterde index slaat de gegevens op één plaats op en indexeert op een andere plaats en de index zou verwijzingen bevatten naar de opslaglocatie van de gegevens. Een tabel kan meerdere niet-geclusterde indices hebben omdat de index in de niet-geclusterde index op een andere plaats wordt opgeslagen. Een boek kan bijvoorbeeld meer dan één index hebben, één aan het begin die de inhoud van een boekeenheid toont en een andere index aan het einde die de index van termen in alfabetische volgorde weergeeft.
Het wordt gedefinieerd in het niet-bestelveld van de tabel. De niet-geclusterde index kan de prestaties verbeteren van query's die andere sleutels dan de primaire sleutels gebruiken. Een niet-geclusterde index wordt automatisch gemaakt wanneer een unieke sleutel voor een tabel is gedefinieerd.
Belangrijkste verschillen tussen geclusterde en niet-geclusterde index
- Het aantal geclusterde index dat een tabel kan hebben is slechts één. Terwijl een tabel meerdere niet-geclusterde indices kan hebben.
- Een geclusterde index is sneller dan een niet-geclusterde index omdat de niet-geclusterde index terug moet verwijzen naar de basistabel. Integendeel, dit is niet het geval in de geclusterde index.
- In een niet-geclusterde index wordt de index opgeslagen op een afzonderlijke locatie waarvoor extra opslagruimte nodig is. Geclusterde index daarentegen slaat de basistabelgegevens op in dezelfde fysieke volgorde als de logische volgorde van de index, dus er is geen extra opslagruimte voor nodig.
Conclusie
De geclusterde index is een manier om gegevens in de rijen van een tabel op te slaan in een bepaalde volgorde. Zodat wanneer de gewenste gegevens worden doorzocht, de enige overeenkomstige rij wordt beïnvloed die de gegevens bevat en wordt weergegeven als uitvoer. Aan de andere kant bevindt de niet-geclusterde index zich in een fysiek afzonderlijke structuur die verwijst naar de basisgegevens wanneer deze wordt doorzocht. Een niet-geclusterde structuur kan een andere sorteervolgorde hebben.