## Index

Um die Suche nach Datensätzen in einer Tabelle zu beschleunigen, können Sie einen Index (auch Sekundärschlüssel genannt) anlegen. Ein Index ist ein Datenbankobjekt, das für eine einzelne Spalte oder eine Folge von Spalten einer Datenbanktabelle definiert werden kann. Ein Index besteht aus einer oder mehreren Invertierungslisten.

Ein Indexname muss zusammen mit dem Tabellennamen eindeutig sein. Bei der Definition eines Index legen Sie fest, ob die Spaltenwerte verschiedener Zeilen in den indizierten Spalten eindeutig sein müssen oder nicht.

Weil Indizes vollständig aus bereits in der Datenbank vorhandenen Daten abgeleitet sind, können Sie diese löschen, ohne dass dabei Daten verloren gehen.

Beachten Sie, dass das Datenbanksystem nach einer Datenänderung unter Umständen auch den entsprechenden Index aktualisieren muss, was Zeit kostet.

Ein Index kann folgende Zustände haben:

Zustand | Beschreibung
OK | Der Index ist intakt.
BAD | Der Index ist beschädigt. Der B*-Baum für den Index ist beschädigt und kann vom Datenbanksystem nicht mehr benutzt werden. Das Datenbanksystem ignoriert beschädigte Indizes. Sie können keine Fehler verursachen, beeinträchtigen jedoch die Performance.
MISSING | Der Index ist im Datenbankkatalog vorhanden, fehlt aber im internen Dateiverzeichnis.

Sie können beschädigte Indizes mit dem Database Manager wiederherstellen. Wenn Sie den speziellen Datenbankparameter AUTO_RECREATE_BAD_INDEXES auf YES setzen, dann stellt das Datenbanksystem beschädigte Indizes automatisch wieder her.

Sie können mit Hilfe der EXPLAIN-Anweisung überprüfen, ob der Index tatsächlich genutzt wird, wenn das Datenbanksystem nach Datensätzen sucht.

Siehe auch:

SQL-Referenzhandbuch, CREATE INDEX-Anweisung (create_index_statement), EXPLAIN-Anweisung (explain_statement)

Database Manager GUI, Wiederherstellen der Indizes nach Datenbankwiederherstellung

Database Manager CLI, sql_recreateindex

Konzepte des Datenbanksystems, B*-Bäume für Tabellen mit Indizes

Datenbankverwaltung im CCMS: Indizes