EMZETT.
Login

SQL-Index

Kurz: Ein Index ist wie das Stichwortverzeichnis eines Buchs: Die Datenbank findet Zeilen schnell, ohne die ganze Tabelle zu lesen.

Genauer: Ohne Index muss die Datenbank bei einer Suche jede Zeile prüfen (Full Table Scan). Mit einem Index (meist ein B-Baum) findet sie passende Zeilen in wenigen Schritten. Dafür kostet der Index Speicherplatz und macht Schreiben etwas langsamer.

Im Detail

  • Wann anlegen: Auf Spalten, nach denen oft gefiltert, sortiert oder verknüpft wird (WHERE, JOIN, ORDER BY).
  • Zusammengesetzter Index: Reihenfolge der Spalten zählt: Ein Index auf (a, b) hilft bei a und bei a+b, nicht bei b allein.
  • Eindeutiger Index: Erzwingt Einmaligkeit (z. B. E-Mail-Adresse).
  • Nicht jede Abfrage nutzt ihn: Funktionen auf der Spalte (LOWER(email)) oder führende Platzhalter (LIKE '%abc') verhindern es oft.
  • Prüfen: EXPLAIN zeigt den Plan der Abfrage.
  • Zu viele Indizes: Jeder muss bei jedem Schreiben mitgepflegt werden.

Siehe auch: Datenbank-Transaktionen und ACID, Datenbank-Migration