# Indizes und Ausführungspläne

> Warum eine Abfrage langsam ist: Selektivität, Zugriffspfad und Statistiken lesen, bevor Indizes ergänzt werden — und was jeder zusätzliche Index im Schreibbetrieb kostet.

Track: [Datenbankadministration für Sysadmins](https://physar.tech/learn/database-administration-basics)  
Kanonische Fassung: https://physar.tech/learn/database-administration-basics/indexing-query-plans  
Stand: 2026-07-30  
Interaktiver Teil: 3 Checks (nur im Browser)

## Erst den Plan lesen, dann den Index bauen

### 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.

> **Prüfung vor dem Bauen:** Erst die Frage: Was sagt der Plan? Dann: Ist die Bedingung selektiv? Dann: Deckt ein vorhandener Index das schon ab? Erst danach ein neuer Index.

### Route

> **Transfer:** Die Checks behandeln die Diagnose über den Ausführungsplan, den Umgang mit veralteten Statistiken und die Bewertung des Schreibpreises.

## Quellen

- use-the-index-luke.com — https://use-the-index-luke.com/
- postgresql.org/docs/current/transaction-iso.html — https://www.postgresql.org/docs/current/transaction-iso.html
- sre.google/sre-book/table-of-contents — https://sre.google/sre-book/table-of-contents/
