Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Hash-Indexering | Query Optimization.Indexes
Geavanceerde Technieken in SQL

bookHash-Indexering

In bepaalde situaties is een index nodig om efficiënt naar informatie te zoeken, maar kan het gebruik van een B-tree-index te complex en overbodig zijn. In zulke gevallen kan een hash-index een geschikter alternatief zijn.

Een hash-index is een type database-index die een hashfunctie gebruikt om geïndexeerde waarden toe te wijzen aan locaties in een hashtabel.
Bij dit type index worden de waarden van de doelkolom gehasht, wat betekent dat ze worden omgezet in een vaste waarde of hashcode, die vervolgens wordt gebruikt als index om gegevensrijen op te halen.

Hoe werkt het?

Bij een hash-index houdt het hashproces in dat een indexsleutel wordt omgezet in een hashcode met behulp van een hashfunctie. Deze hashcode wordt vervolgens gebruikt om de locatie, of bucket, te bepalen waar de bijbehorende gegevens in de index zijn opgeslagen.

Meer informatie over hashing is te vinden in de Algoritmen en Datastructuren Overzicht-cursus.

Beschouw een hash-index voor een bibliotheekcatalogussysteem waarbij elke boektitel wordt geïndexeerd op het ISBN (International Standard Book Number).

In dit voorbeeld gebruiken we een hashfunctie om het ISBN van een boek om te zetten in een hexadecimale hashcode, zoals 0x7FA4, door een reeks wiskundige bewerkingen op de ISBN-cijfers uit te voeren.
Deze hashcode fungeert als een unieke identificatie, bepalend voor de positie binnen de hashtabel waar een koppeling is naar de overeenkomstige regel in de tabel met alle informatie over dat specifieke boek.

Belangrijkste kenmerken

  1. Snelle opzoeking: Hash-indexen bieden snelle opzoekingen voor gelijkheidsvergelijkingen. Bij het zoeken naar een specifieke waarde berekent PostgreSQL de hash van de waarde en benadert vervolgens direct de overeenkomstige locatie in de index, waardoor het ophalen zeer efficiënt is;

  2. Beperkte operatorondersteuning: In tegenstelling tot B-tree-indexen ondersteunen hash-indexen alleen gelijkheidsvergelijkingen (=), geen bereikqueries (<, >, <=, >=) of sortering. Deze beperking maakt hash-indexen minder veelzijdig in vergelijking met B-tree-indexen;

  3. Sneller voor bepaalde toepassingen: In situaties waarin de werklast bestaat uit een groot aantal gelijkheidsopzoekingen, zoals het afdwingen van primaire sleutels of unieke beperkingen, kunnen hash-indexen beter presteren dan B-tree-indexen. Hun prestatievoordeel neemt echter af bij bereikqueries of gegevens die niet goed passen bij het hash-algoritme.

Implementatie

We kunnen een hash-index in SQL implementeren met de volgende instructie:

CREATE INDEX hash_index_name ON table_name USING HASH (column_name1, column_name2,... );

Hierdoor worden de waarden van column_name1, column_name2,... gehasht en wordt de hashtabel aangemaakt. Dit maakt snellere opvraging van de benodigde datarijen mogelijk.

question mark

Van welk type query profiteert een hash-index het meest?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 4.35

bookHash-Indexering

Veeg om het menu te tonen

In bepaalde situaties is een index nodig om efficiënt naar informatie te zoeken, maar kan het gebruik van een B-tree-index te complex en overbodig zijn. In zulke gevallen kan een hash-index een geschikter alternatief zijn.

Een hash-index is een type database-index die een hashfunctie gebruikt om geïndexeerde waarden toe te wijzen aan locaties in een hashtabel.
Bij dit type index worden de waarden van de doelkolom gehasht, wat betekent dat ze worden omgezet in een vaste waarde of hashcode, die vervolgens wordt gebruikt als index om gegevensrijen op te halen.

Hoe werkt het?

Bij een hash-index houdt het hashproces in dat een indexsleutel wordt omgezet in een hashcode met behulp van een hashfunctie. Deze hashcode wordt vervolgens gebruikt om de locatie, of bucket, te bepalen waar de bijbehorende gegevens in de index zijn opgeslagen.

Meer informatie over hashing is te vinden in de Algoritmen en Datastructuren Overzicht-cursus.

Beschouw een hash-index voor een bibliotheekcatalogussysteem waarbij elke boektitel wordt geïndexeerd op het ISBN (International Standard Book Number).

In dit voorbeeld gebruiken we een hashfunctie om het ISBN van een boek om te zetten in een hexadecimale hashcode, zoals 0x7FA4, door een reeks wiskundige bewerkingen op de ISBN-cijfers uit te voeren.
Deze hashcode fungeert als een unieke identificatie, bepalend voor de positie binnen de hashtabel waar een koppeling is naar de overeenkomstige regel in de tabel met alle informatie over dat specifieke boek.

Belangrijkste kenmerken

  1. Snelle opzoeking: Hash-indexen bieden snelle opzoekingen voor gelijkheidsvergelijkingen. Bij het zoeken naar een specifieke waarde berekent PostgreSQL de hash van de waarde en benadert vervolgens direct de overeenkomstige locatie in de index, waardoor het ophalen zeer efficiënt is;

  2. Beperkte operatorondersteuning: In tegenstelling tot B-tree-indexen ondersteunen hash-indexen alleen gelijkheidsvergelijkingen (=), geen bereikqueries (<, >, <=, >=) of sortering. Deze beperking maakt hash-indexen minder veelzijdig in vergelijking met B-tree-indexen;

  3. Sneller voor bepaalde toepassingen: In situaties waarin de werklast bestaat uit een groot aantal gelijkheidsopzoekingen, zoals het afdwingen van primaire sleutels of unieke beperkingen, kunnen hash-indexen beter presteren dan B-tree-indexen. Hun prestatievoordeel neemt echter af bij bereikqueries of gegevens die niet goed passen bij het hash-algoritme.

Implementatie

We kunnen een hash-index in SQL implementeren met de volgende instructie:

CREATE INDEX hash_index_name ON table_name USING HASH (column_name1, column_name2,... );

Hierdoor worden de waarden van column_name1, column_name2,... gehasht en wordt de hashtabel aangemaakt. Dit maakt snellere opvraging van de benodigde datarijen mogelijk.

question mark

Van welk type query profiteert een hash-index het meest?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
some-alt