Ein Datenbankindex (kurz: Index) beschleunigt die Suche nach Datensätzen in einer Datenbank (insbesondere in RDBMS mit Tausenden oder gar Millionen Datensätzen pro Tabelle) erheblich. Ein solcher Index besteht aus einer Ansammlung von Zeigern, die eine Ordnungsrelation auf eine oder mehrere Spalten in einer Tabelle definieren. Wird nun bei einer Abfrage eine indizierte Spalte als Suchkriterium herangezogen, sucht das Datenbanksystem die gewünschten Datensätze an Hand dieser Zeiger. Ohne Index müsste es sequentiell suchen, was selbst mit modernster Hardware und Software viel Zeit beanspruchen kann.
In SQL wird ein solcher Index mit dem Befehl create index Index_Name on Tabelle (Spalten)
definiert. In den meisten Fällen wird eine einzelne Spalte indiziert, doch auch zusammengesetzte Indizes sind in den meisten Datenbanksystemen erlaubt.
Auf Primärschlüssel (SQL-Klausel primary key
im Befehl create table
) wird automatisch ein Index gelegt.
Häufig reicht die Sortierung der Daten nach einem Primärindex nicht aus, so dass weitere Einstiegspunkte erforderlich werden. Wird nun für diese weiteren Erschließungen ein Gesamtinhaltsverzeichnis aufgebaut, entsteht ein Sekundärindex.
Siehe auch: Fremdschlüssel