Wat is een index?
Een index is een sleutel die is opgebouwd uit een of meer kolommen in de database die het ophalen van rijen uit de tabel of view versnelt. Deze sleutel helpt een database zoals Oracle, SQL Server, MySQL, enz. Om snel de rij te vinden die is gekoppeld aan sleutelwaarden.
Twee soorten indexen zijn:
- Geclusterde index
- Niet-geclusterde index
In deze tutorial , leer je:
- Wat is een index?
- Wat is een geclusterde index?
- Wat is een niet-geclusterde index?
- Kenmerk van geclusterde index
- Kenmerken van niet-geclusterde indexen
- Een voorbeeld van een geclusterde index
- Een voorbeeld van een niet- geclusterde index
- Verschillen tussen geclusterde index en niet-geclusterde index
- Voordelen van geclusterde index
- Voordelen van niet-geclusterde index
- Nadelen van geclusterde index Index
- Nadelen van niet-geclusterde index
Wat is een geclusterde index?
Clusterindex is een type index dat de gegevensrijen sorteert in de tabel over hun kernwaarden. In de database is er slechts één geclusterde index per tabel.
Een geclusterde index definieert de volgorde waarin gegevens in de tabel worden opgeslagen, die op slechts één manier kunnen worden gesorteerd. Er kan dus maar één geclusterde index voor elke tabel zijn. In een RDBMS kunt u met de primaire sleutel meestal een geclusterde index maken op basis van die specifieke kolom.
Wat is een niet-geclusterde index?
Een niet-geclusterde index slaat de gegevens op de ene locatie op en indices op een andere locatie. De index bevat verwijzingen naar de locatie van die gegevens. Een enkele tabel kan veel niet-geclusterde indexen hebben, aangezien een index in de niet-geclusterde index op verschillende plaatsen wordt opgeslagen.
Een boek kan bijvoorbeeld meer dan één index hebben, een aan het begin die de inhoud van een boekeenheid weergeeft, terwijl de tweede index de index van termen in alfabetische volgorde weergeeft.
Een niet-clusterende index wordt gedefinieerd in het niet-ordenende veld van de tabel. Dit type indexeringsmethode helpt u de prestaties te verbeteren van query’s die sleutels gebruiken die niet als primaire sleutel zijn toegewezen. Met een niet-geclusterde index kunt u een unieke sleutel voor een tabel toevoegen.
SLEUTELVERSCHIL
- Clusterindex is een type index dat de gegevensrijen in de tabel sorteert op hun sleutelwaarden, terwijl de niet-geclusterde index de gegevens opslaat op de ene locatie en indices op een andere locatie.
- Geclusterde index slaat gegevenspagina’s op in de bladknooppunten van de index, terwijl de niet-geclusterde indexmethode nooit gegevenspagina’s opslaat in de bladknooppunten van de index.
- Clusterindex vereist niet extra schijfruimte terwijl de niet-geclusterde index extra schijfruimte vereist.
- Clusterindex biedt snellere toegang tot gegevens, aan de andere kant is niet-geclusterde index langzamer.
Kenmerk van geclusterde index
- Standaard en gesorteerde gegevensopslag
- Gebruik slechts één of meer kolommen voor een index
- Helpt u om gegevens en index samen op te slaan
- Fragmentatie
- Bewerkingen
- Geclusterde indexscan en indexzoekopdracht
- Sleutel zoeken
Kenmerken van niet-geclusterde indexen
- Alleen sleutelwaarden opslaan
- Aanwijzers naar rijen met heap- / geclusterde indexen
- Staat secundaire gegevens toe toegang
- Brug naar de gegevens
- Bewerkingen van index scannen en index zoeken
- U kunt een geclusterde index voor een tabel of weergave
- Elke indexrij in de niet-geclusterde index slaat de niet-geclusterde sleutelwaarde en een rijlocator op
Een voorbeeld van een geclusterde index
In het onderstaande voorbeeld is SalesOrderDetailID de geclusterde index. Voorbeeldquery om gegevens op te halen
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Een voorbeeld van een niet-geclusterde index
In het onderstaande voorbeeld wordt een niet-geclusterde index aangemaakt op OrderQty en ProductID als volgt
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
De volgende zoekopdracht wordt sneller opgehaald in vergelijking met de geclusterde index.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Verschillen tussen geclusterde Index en niet-geclusterde index
Parameters | Gegroepeerd | Niet-geclusterd |
---|---|---|
Gebruiken voor | U kunt de records sorteren en de geclusterde index fysiek in het geheugen opslaan volgens de volgorde . | Een niet-geclusterde index helpt u bij het creëren van een logische volgorde voor gegevensrijen en gebruikt pointers voor fysieke gegevensbestanden. |
Opslagmethode | Hiermee kunt u gegevenspagina’s opslaan in de bladknooppunten van de index. | Deze indexeringsmethode slaat nooit gegevenspagina’s op in de bladknooppunten van de index. |
Grootte | De grootte van de geclusterde index is vrij groot. | De grootte van de niet-geclusterde index is klein in vergelijking met de geclusterde index. |
Gegevenstoegang | Sneller | Langzamer vergeleken met de geclusterde index |
Extra schijfruimte | Niet vereist | Vereist om de index afzonderlijk op te slaan |
Type sleutel | Standaard is de primaire sleutel van de tabel een geclusterde index. | Het kan worden gebruikt met een unieke beperking op de tafel die als een samengestelde sleutel fungeert. |
Hoofdkenmerk | Een geclusterde index kan de prestaties van het ophalen van gegevens verbeteren. | Het moet worden gemaakt op kolommen die worden gebruikt in joins. |
Voordelen van geclusterde index
De voordelen / voordelen van de geclusterde index zijn:
- Geclusterde indexen zijn een ideale optie voor bereik of groeperen op basis van max, min, count type queries
- In dit type index kan een zoekopdracht rechtstreeks naar een specifiek punt in de gegevens gaan, zodat u kan vanaf daar sequentieel blijven lezen.
- Geclusterde indexmethode gebruikt locatiemechanisme om indexingang aan het begin van een bereik te lokaliseren.
- Het is een effectieve methode voor bereikzoekopdrachten wanneer een bereik van zoeksleutelwaarden wordt gevraagd.
- Helpt u om paginaoverdrachten te minimaliseren en de cache-hits te maximaliseren.
Voordelen van niet-geclusterde index
Voordelen van het gebruik van niet-geclusterde index zijn:
- Een niet-clusterende index helpt u om snel gegevens uit de databasetabel op te halen.
- Helpt u de overheadkosten te vermijden die verband houden met de geclusterde index
- Een tabel kan meerdere niet-geclusterde indexen hebben in RDBMS. Het kan dus worden gebruikt om meer dan één index te maken.
Nadelen van geclusterde index
Hier zijn de nadelen / nadelen van het gebruik van geclusterde index:
- Veel inserts in niet-sequentiële volgorde
- Een geclusterde index creëert veel constante paginasplitsingen, waaronder zowel gegevenspagina’s als indexpagina’s.
- Extra werk voor SQL voor invoegingen, updates en verwijderingen.
- Een geclusterde index heeft meer tijd nodig om records bij te werken wanneer de velden in de geclusterde index worden gewijzigd.
- De bladknooppunten bevatten meestal gegevenspagina’s in de geclusterde index.
Nadelen van een niet-geclusterde index
Hier zijn de nadelen / nadelen van het gebruik van een niet-geclusterde index: