Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Hash-Indexierung | Abfrageoptimierung.Indizes
Fortgeschrittene Techniken in SQL
course content

Kursinhalt

Fortgeschrittene Techniken in SQL

Fortgeschrittene Techniken in SQL

1. Acid
2. Abfrageoptimierung.Indizes
3. Einige Zusätzliche Themen

book
Hash-Indexierung

In bestimmten Situationen benötigen wir einen Index, um effizient nach Informationen zu suchen, aber die Verwendung eines B-Baum-Index kann übermäßig komplex und redundant sein. In solchen Fällen kann ein Hash-Index eine geeignetere Alternative sein.

Ein Hash-Index ist eine Art von Datenbankindex, der eine Hash-Funktion verwendet, um indizierte Werte auf Positionen in einer Hashtabelle abzubilden.
Bei diesem Index-Typ werden die Werte der Zielspalte gehasht, das heißt, sie werden in einen festen Wert oder Hash-Code umgewandelt, der dann als Index verwendet wird, um Datenzeilen abzurufen.

Wie funktioniert es?

In einem Hash-Index beinhaltet der Hashing-Prozess die Umwandlung eines Indexschlüsselwerts in einen Hash-Code mithilfe einer Hash-Funktion. Dieser Hash-Code wird dann verwendet, um den Ort oder Bucket zu bestimmen, an dem die entsprechenden Daten im Index gespeichert sind.

Weitere Informationen zum Hashing finden Sie im Kurs zu Algorithmen und Datenstrukturen.

Betrachten wir einen Hash-Index für ein Bibliothekskatalogsystem, bei dem jeder Buchtitel durch seine ISBN (International Standard Book Number) indiziert wird.

In diesem Beispiel verwenden wir eine Hash-Funktion, um die ISBN eines Buches in einen hexadezimalen Hash-Code, wie 0x7FA4, umzuwandeln, indem eine Reihe von mathematischen Operationen auf den ISBN-Ziffern durchgeführt wird.
Dieser Hash-Code dient als eindeutiger Bezeichner, der den Slot bestimmt innerhalb der Hashtabelle, wo es einen Link zur entsprechenden Zeile in der Tabelle gibt, die alle Informationen über dieses bestimmte Buch enthält.

Hauptmerkmale

  1. Schnelles Nachschlagen: Hash-Indizes bieten schnelle Nachschlagevorgänge für Gleichheitsvergleiche. Bei der Suche nach einem bestimmten Wert berechnet PostgreSQL den Hash des Wertes und greift dann direkt auf den entsprechenden Ort im Index zu, was die Abfrage sehr effizient macht;

  2. Eingeschränkte Operatorunterstützung: Im Gegensatz zu B-Baum-Indizes unterstützen Hash-Indizes nur Gleichheitsvergleiche (=), keine Bereichsabfragen (<, >, <=, >=) oder Sortierungen. Diese Einschränkung macht Hash-Indizes weniger vielseitig im Vergleich zu B-Baum-Indizes;

  3. Schneller für einige Anwendungsfälle: In Szenarien, in denen die Arbeitslast ein hohes Volumen an Gleichheitsabfragen umfasst, wie z.B. die Durchsetzung von Primärschlüsseln oder eindeutigen Einschränkungen, können Hash-Indizes B-Baum-Indizes übertreffen. Ihr Leistungsvorteil nimmt jedoch bei Bereichsabfragen oder Daten, die nicht gut mit dem Hashing-Algorithmus übereinstimmen, ab.

Implementierung

Wir können einen Hash-Index in SQL mit der folgenden Anweisung implementieren:

Infolgedessen werden die Werte von column_name1, column_name2,... gehasht und die Hashtabelle wird erstellt. Dies ermöglicht eine schnellere Abfrage der benötigten Datenzeilen.

Welche Art von Abfrage profitiert am meisten von der Verwendung eines Hash-Index?

Welche Art von Abfrage profitiert am meisten von der Verwendung eines Hash-Index?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
We're sorry to hear that something went wrong. What happened?
some-alt