Wat is het verschil tussen geclusterde en niet-geclusterde index

De grootste verschil tussen geclusterde en niet-geclusterde index is dat er is slechts één geclusterde index per tabel, terwijl er meerdere tabelloze indexen per tabel zijn.

Allereerst is indexering een techniek om records eenvoudig en efficiënt uit de databasebestanden op te halen. Het versnelt de queryprestaties voor de clienttoepassingen die de database gebruiken. Bovendien zijn er twee soorten indexen als geclusterde en niet-geclusterde index. Geclusterde index wijzigt de volgorde waarin de gegevens op de schijf worden opgeslagen. In een niet-geclusterde index komt de logische volgorde van de index echter niet overeen met de fysieke volgorde van de gegevens die op de schijf zijn opgeslagen.

Key Areas Covered

1. Wat is een index
     - Definitie, functionaliteit
2. Wat is een geclusterde index
     - Definitie, functionaliteit
3. Wat is een niet-geclusterde index
     - Definitie, functionaliteit
4. Wat is het verschil tussen geclusterde en niet-geclusterde index
     - Vergelijking van belangrijke verschillen

Sleutelbegrippen

Geclusterde index, niet-geclusterde index

Wat is een index

Neem een ​​tabel aan waarin de gegevens van de klant worden opgeslagen. Het heeft drie kolommen als voornaam, achternaam en contactnummer. Als er geen indexen in de tabel staan, worden de gegevens zonder specifieke volgorde in de vrije ruimten in de opslag ingevoegd. Als de gebruiker het telefoonnummer van een specifieke klant nodig heeft, is het noodzakelijk om vanaf het begin gegevens te zoeken. Hoewel we de gegevens krijgen, is het nodig om door te gaan tot het einde, omdat er aan het eind overeenkomende gegevens kunnen zijn. Indices zijn nuttig in deze situaties.

Wat is een geclusterde index

Een geclusterde index wijzigt de volgorde waarin de gegevens fysiek worden opgeslagen. Nadat de tabelgegevens in de fysieke volgorde staan, maakt de DBMS indexpagina's. Ze helpen om gemakkelijk naar de vereiste gegevens te navigeren. De volledige structuur met de basistabelgegevens staat bekend als een geclusterde index. Het proces van een query die door de geclusterde indexstructuur naar de basistabelgegevens navigeert, wordt geclusterde indexzoekopdracht genoemd. Er is één geclusterde index per tabel omdat het onmogelijk is om gegevens fysiek op twee verschillende manieren te rangschikken zonder afzonderlijke structuren te gebruiken.

Wat is een niet-geclusterde index

Een niet-geclusterde index sorteert de fysieke gegevens in de tabel niet. De index en tabel worden op verschillende plaatsen opgeslagen. Bovendien zijn er verwijzingen of verwijzingen naar de gegevens in de tabel. Het is mogelijk om gegevens in willekeurige volgorde op te slaan, omdat die volgorde onafhankelijk is van de basistabelgegevens. Daarom kan er per tabel meer dan één niet-geclusterde index zijn. De gegevens in de basistabel bevinden zich in de heap terwijl de verwijzingen de rij-id's zijn.

Bij het uitvoeren van een query tegen een kolom, gaat de database eerst naar de index en zoekt naar het adres van de overeenkomstige rij in de tabel. Vervolgens gaat het naar het rijadres en haalt het andere kolomwaarden op. Daarom zijn niet-geclusterde indexen langzamer dan geclusterde indexen. Wanneer er een unieke sleutel is gedefinieerd in de tabel, wordt automatisch een niet-geclusterde index gemaakt.

Verschil tussen geclusterde en niet-geclusterde index

Definitie

Een geclusterde index is een type index waarbij de tabelrecords fysiek opnieuw worden gerangschikt om overeen te komen met de index. Een niet-geclusterde index daarentegen is een speciaal type index waarin de logische volgorde van de index niet overeenkomt met de fysieke opgeslagen volgorde van de rijen op de schijf. Deze definities verklaren het verschil tussen geclusterde en niet-geclusterde index.

Aantal indexen

Het aantal indexen per tabel is een groot verschil tussen geclusterde en niet-geclusterde index. Een tabel kan één geclusterde index hebben, maar meerdere niet-geclusterde indexen.

functionaliteit

Geclusterde index slaat geen verwijzingen op naar de daadwerkelijke gegevens. Niet-geclusterde index slaat echter zowel de waarde als een verwijzing naar de eigenlijke rij met gegevens op. Dit is dus een ander verschil tussen geclusterde en niet-geclusterde index.

Volgorde van het opslaan van gegevens

Bovendien bepaalt een clusterindex de volgorde waarin de gegevens op de schijf worden opgeslagen, terwijl een niet-geclusterde index geen effect heeft op de volgorde waarin gegevens op de schijf worden opgeslagen.

Vereiste geheugenruimte

Bovendien vereist een niet-geclusterde index meer geheugenruimte dan een geclusterde index.

Snelheid

Snelheid is een ander verschil tussen geclusterde en niet-geclusterde index. Niet-geclusterde indexen zijn langzamer dan geclusterde indexen.

Conclusie

Er zijn twee soorten indexen als geclusterde en niet-geclusterde index. Het verschil tussen geclusterde en niet-geclusterde index is dat er slechts één geclusterde index per tabel is terwijl er meerdere niet-geclusterde indexen per tabel zijn. Kort gezegd, een niet-geclusterde index is langzamer en vereist meer ruimte dan een geclusterde index.

Referentie:

1. Yadav, Durgaprasad. "Index in Sql Server." LinkedIn SlideShare, 21 november 2015, hier beschikbaar.
2. Rahaman, Mahabubur. "Introductie van Sql Server Indexing." LinkedIn SlideShare, 23 mei 2015, hier beschikbaar.

Afbeelding met dank aan:

1. "Databases-logo" door Borjasotomayor op Engelse Wikibooks (CC BY-SA 3.0) via Commons Wikimedia