Junior
Welche Arten von Indizes gibt es in Datenbanken?
sobes.tech KI
Antwort von AI
Die wichtigsten Index-Typen in Datenbanken:
-
B-Baum (B+Tree):
- Der am weitesten verbreitete Typ.
- Geeignet für eine Vielzahl von Operationen: Bereichssuche, exakte Übereinstimmung, Sortierung.
- Wird standardmäßig in vielen DBMS verwendet (MySQL, PostgreSQL, Oracle).
-
Hash-Indizes:
- Basieren auf einer Hash-Tabelle.
- Sehr schnell bei Suche nach exakter Übereinstimmung (
=). - Nicht geeignet für Bereichssuchen (
BETWEEN,<,>), Sortierung (ORDER BY) oder Mustererkennung (LIKE).
-
Volltextindizes:
- Für die Suche in Textfeldern (BLOB, TEXT) vorgesehen.
- Ermöglichen die Suche nach Wörtern oder Phrasen, Berücksichtigung von Synonymen und morphologische Analyse.
- Beispiele:
MATCH...AGAINSTin MySQL/MariaDB,tsvector/tsqueryin PostgreSQL.
-
Räumliche Indizes (R-tree):
- Für die Indexierung geografischer oder räumlicher Daten.
- Ermöglichen effiziente Suche nach Objekten in bestimmten Bereichen oder Grenzen.
-
Bitmap-Indizes:
- In einigen DBMS verwendet (z.B. Oracle, PostgreSQL).
- Für Felder mit niedriger Kardinalität geeignet (wenige eindeutige Werte, z.B. Geschlecht, Status: aktiv/inaktiv).
- Sehr effizient bei komplexen Abfragen mit
ANDundOROperationen.
-
Clustered Index:
- Beeinflusst die physische Anordnung der Datenzeilen.
- Es kann nur einen clustered Index pro Tabelle geben.
- Wird häufig für den Primärschlüssel verwendet.
-
Nicht-clustered Index:
- Bestimmt nicht die physische Reihenfolge der Zeilen.
- Enthält Zeiger auf die physische Position der Datenzeilen.
- Eine Tabelle kann mehrere nicht-clustered Indizes haben.
-
Covering (abdeckender) Index:
- Ein Index, der alle Spalten enthält, die für die Ausführung einer Abfrage erforderlich sind, einschließlich Spalten in
SELECT, Bedingungen inWHEREundORDER BY. - Ermöglicht es dem DBMS, auf den Zugriff auf die Tabellendaten zu verzichten, was die Abfrage beschleunigt.
- Ein Index, der alle Spalten enthält, die für die Ausführung einer Abfrage erforderlich sind, einschließlich Spalten in
-
Funktionaler (ausdrucksbasierter) Index:
- Index, der auf dem Ergebnis einer Funktion oder eines Ausdrucks auf einer oder mehreren Spalten basiert.
- Ermöglicht die Indexierung berechneter Werte.
Bei der Auswahl des Index-Typs werden der Datentyp, die Häufigkeit und Art der Abfragen (Suche nach exaktem Wert, Bereich, Sortierung, Volltextsuche usw.) sowie die Kardinalität der Spalte berücksichtigt.