Erst den Plan lesen, dann den Index bauen
Einführung · 5 Abschnitte · ~15 Min Lesezeit · Stand
Betriebsfrage
„Die Abfrage ist langsam, wir brauchen einen Index“ ist die häufigste und die am seltensten belegte Aussage im Datenbankbetrieb. Der Ausführungsplan sagt, ob sie stimmt — und meistens sagt er etwas anderes.
Mentales Modell
- Abfrage
- Statistiken
- Planwahl
- Zugriffspfad
- Ergebnis
Die Datenbank wählt den Zugriffspfad anhand geschätzter Zeilenzahlen. Sind die Statistiken veraltet, ist die Schätzung falsch — und der Plan optimal für eine Datenmenge, die es nicht mehr gibt.
Wann ein Index hilft
| Hohe Selektivität | Die Bedingung trifft einen kleinen Teil der Zeilen. Dann lohnt der Umweg über den Index. |
|---|---|
| Niedrige Selektivität | Die Bedingung trifft einen großen Teil. Ein vollständiger Durchlauf ist dann meist schneller — der Index wird zu Recht ignoriert. |
| Sortierung und Bereich | Ein Index kann eine Sortierung oder einen Bereichszugriff mitliefern; die Spaltenreihenfolge im Index entscheidet darüber. |
Was Indizes kosten
- Jeder Index wird bei jedem Einfügen, Ändern und Löschen mitgepflegt — Schreibvorgänge werden langsamer.
- Indizes belegen Speicher und verlängern Sicherung und Wiederherstellung.
- Ungenutzte Indizes kosten dauerhaft, ohne je einen Zugriff zu beschleunigen.