Sobes.tech
Middle

Welche Arten der Transaktionsisolation gibt es?

sobes.tech KI

Antwort von AI

Transaktionsisolation bestimmt, wie gut eine Transaktion die Zwischenänderungen anderer paralleler Transaktionen sehen kann.

Der SQL-Standard definiert vier Isolationsstufen:

  1. Read Uncommitted (Unbestätigtes Lesen): Die niedrigste Stufe. Eine Transaktion kann unbestätigte Änderungen anderer Transaktionen lesen (Dirty Read).
  2. Read Committed (Bestätigtes Lesen): Die Transaktion kann nur Daten lesen, die von anderen Transaktionen bestätigt wurden. Vermeidet Dirty Reads.
  3. Repeatable Read (Wiederholbares Lesen): Die Transaktion garantiert, dass die während der Transaktion gelesenen Daten bei wiederholtem Lesen nicht ändern. Vermeidet Dirty Reads und Non-Repeatable Reads. Es können "Phantome" auftreten.
  4. Serializable (Serialisierbar): Die höchste Isolationsstufe. Garantiert, dass parallele Transaktionen so ausgeführt werden, als ob sie sequenziell wären. Vermeidet alle unerwünschten Phänomene: Dirty Reads, Non-Repeatable Reads und Phantome.

Unerwünschte Phänomene bei paralleler Transaktionsausführung:

  • Dirty Read (Schmutziges Lesen): Transaktion A liest Daten, die von Transaktion B modifiziert wurden, aber noch nicht bestätigt sind. Wenn Transaktion B die Änderungen rückgängig macht, arbeitet Transaktion A mit falschen Daten.
  • Non-Repeatable Read (Nicht wiederholbares Lesen): Transaktion A liest dieselben Daten zweimal, aber zwischen den Lesungen bestätigt Transaktion B eine Änderung an diesen Daten. Daher erhält Transaktion A unterschiedliche Werte bei den wiederholten Lesungen.
  • Phantom Read (Phantomlesen): Transaktion A führt eine Abfrage aus, die eine Menge von Zeilen zurückgibt. Transaktion B bestätigt das Einfügen oder Löschen von Zeilen, die den Kriterien von Transaktion A entsprechen. Bei erneuter Ausführung der Abfrage erhält Transaktion A eine andere Menge von Zeilen.

Zusammenfassungstabelle der unerwünschten Phänomene nach Isolationsstufen:

Isolationsstufe Dirty Read Non-Repeatable Read Phantome
Read Uncommitted Ja Ja Ja
Read Committed Nein Ja Ja
Repeatable Read Nein Nein Ja
Serializable Nein Nein Nein

Die Wahl der Isolationsstufe beeinflusst die Leistung und die Korrektheit der Anwendung. Je höher die Isolationsstufe, desto höher sind die zusätzlichen Kosten.