Gelöscht ist nicht weg
Einführung · 5 Abschnitte · ~15 Min Lesezeit · Stand
Betriebsfrage
Eine Tabelle, aus der ebenso viel gelöscht wie eingefügt wird, wächst trotzdem. Das ist kein Fehler, sondern die Folge davon, wie Datenbanken gleichzeitige Zugriffe ermöglichen — und es erklärt die meisten unerwarteten Platzprobleme.
Mentales Modell
- Ändern
- Alte Version behalten
- Freigeben
- Platz wiederverwenden
Um Lesern eine konsistente Sicht zu geben, bleiben ältere Zeilenversionen erhalten, solange irgendeine Transaktion sie noch sehen könnte. Erst danach kann ein Aufräumvorgang den Platz zur Wiederverwendung freigeben — an das Betriebssystem zurück geht er meist nicht.
Was Aufräumen blockiert
- Eine sehr lange offene Transaktion hält alte Versionen fest — auch solche, die sie nie lesen wird.
- Eine unterbrochene Replikationsverbindung kann denselben Effekt haben.
- Ist der Aufräumvorgang dauerhaft langsamer als die Änderungsrate, wächst der Rückstand monoton.
Reorganisation
| Regelmäßiges Aufräumen | Läuft nebenher und hält den Zustand stabil. Es gibt Platz zur Wiederverwendung frei. |
|---|---|
| Vollständige Reorganisation | Gibt Platz an das Betriebssystem zurück, sperrt dabei aber typischerweise die Tabelle. Auf großen Tabellen ist das ein Ausfall. |
| Statistiken | Sind eine eigene Aufgabe. Sie beeinflussen die Planwahl, nicht den Platzbedarf. |