Sobes.tech
Junior

Welche Arten von Indizes gibt es in Datenbanken?

sobes.tech KI

Antwort von AI

Die wichtigsten Index-Typen in Datenbanken:

  1. 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).
  2. 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).
  3. 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...AGAINST in MySQL/MariaDB, tsvector/tsquery in PostgreSQL.
  4. 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.
  5. 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 AND und OR Operationen.
  6. 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.
  7. 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.
  8. 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 in WHERE und ORDER BY.
    • Ermöglicht es dem DBMS, auf den Zugriff auf die Tabellendaten zu verzichten, was die Abfrage beschleunigt.
  9. 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.