Repeatable Read
Repeatable Read verhindert Dirty Reads und Non-Repeatable Reads: Mehrere Lesevorgänge derselben Zeile innerhalb einer Transaktion liefern identische Ergebnisse, Phantom Reads bleiben jedoch möglich.
Zweck
Bietet stärkere Konsistenz als Read Committed und gewährleistet stabile Lesevorgänge innerhalb einer Transaktion.
Mechanismus
Beim ersten Lesen sperrt die Transaktion die Zeile oder fixiert eine Snapshot-Version; nachfolgende Lesevorgänge derselben Zeile liefern denselben Wert. Bereichsabfragen können jedoch mehr Zeilen liefern, wenn andere Transaktionen einfügen (Phantom Reads). MySQL InnoDB verhindert Phantome durch Next-Key-Locks.
Anwendungsfälle
- Konsistente Lesevorgänge in Transaktionen
- Auswahl des Isolationslevels
- Analyse von Phantom Reads