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.
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
Geclusterde index, niet-geclusterde 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.
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.
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.
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.
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.
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.
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.
Bovendien vereist een niet-geclusterde index meer geheugenruimte dan een geclusterde index.
Snelheid is een ander verschil tussen geclusterde en niet-geclusterde index. Niet-geclusterde indexen zijn langzamer dan geclusterde indexen.
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.
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.
1. "Databases-logo" door Borjasotomayor op Engelse Wikibooks (CC BY-SA 3.0) via Commons Wikimedia