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

Inhoudsopgave:

Anonim

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

Ten eerste is indexeren een techniek om eenvoudig en efficiënt records uit de databasebestanden 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 verandert 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.

Geclusterde index, niet-geclusterde index

Wat is een index?

Ga uit van een tabel waarin de gegevens van de klant zijn opgeslagen. Het heeft drie kolommen als voornaam, achternaam en contactnummer. Als er geen indexen in de tabel zijn, worden de gegevens zonder een bepaalde volgorde in de vrije ruimtes in de opslag ingevoegd. Als de gebruiker het telefoonnummer van een specifieke klant nodig heeft, is het noodzakelijk om vanaf het begin naar gegevens te zoeken. Ook al krijgen we de gegevens, het is noodzakelijk om door te gaan tot het einde omdat er aan het einde overeenkomende gegevens kunnen zijn. Indexen zijn handig in deze situaties.

Wat is een geclusterde index?

Een geclusterde index verandert de volgorde waarin de gegevens fysiek worden opgeslagen. Nadat de tabelgegevens in de fysieke volgorde staan, maakt het DBMS indexpagina's. Ze helpen om gemakkelijk naar de benodigde gegevens te navigeren. De hele structuur met de basistabelgegevens staat bekend als een geclusterde index. Het proces waarbij een query door de geclusterde indexstructuur naar de basistabelgegevens navigeert, wordt geclusterd index zoeken genoemd. Er is één geclusterde index per tabel omdat het onmogelijk is om gegevens fysiek op twee verschillende manieren te rangschikken zonder aparte 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 elke volgorde op te slaan, aangezien die volgorde onafhankelijk is van de basistabelgegevens. Daarom kan er meer dan één niet-geclusterde index per tabel zijn. De gegevens in de basistabel zijn in heap terwijl de verwijzingen de rij-ID's zijn.

Bij het uitvoeren van een query op een kolom gaat de database eerst naar de index en zoekt het adres van de corresponderende 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 in de tabel is gedefinieerd, 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 geordend om overeen te komen met de index. Een niet-geclusterde index is daarentegen een speciaal type index waarin de logische volgorde van de index niet overeenkomt met de fysiek opgeslagen volgorde van de rijen op 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 een enkele geclusterde index hebben, maar meerdere niet-geclusterde indexen.

Functionaliteit

Geclusterde index slaat geen verwijzingen naar de werkelijke gegevens op. Niet-geclusterde index slaat echter zowel de waarde op als een aanwijzer naar de daadwerkelijke rij die gegevens bevat. Daarom is dit een ander verschil tussen geclusterde en niet-geclusterde index.

Volgorde van het opslaan van gegevens

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. Kortom, een niet-geclusterde index is langzamer en vereist meer ruimte dan een geclusterde index.

Verwijzing:

1. Yadav, Durgaprasad. "Indexeren in SQL-server." LinkedIn SlideShare, 21 nov. 2015, Beschikbaar hier.2. Rahaman, Mahabubur. "Introductie van SQL Server-indexering." 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

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