Sobes.tech
Senior

Welche Transaktionsisolationsebenen von PostgreSQL kennst du?

sobes.tech KI

Antwort von AI

In PostgreSQL gibt es vier Transaktionsisolationsebenen, die vom SQL-Standard definiert sind:

  1. Read Uncommitted — die niedrigste Isolationsstufe. Erlaubt das Lesen von Daten, die noch nicht bestätigt wurden (Dirty Reads). In PostgreSQL verhält es sich praktisch wie Read Committed, da Dirty Reads nicht unterstützt werden.

  2. Read Committed — Standardstufe. Die Transaktion sieht nur die Daten, die zum Zeitpunkt jeder einzelnen Abfrage bestätigt wurden. Zwischen Abfragen innerhalb derselben Transaktion können Änderungen durch andere Transaktionen auftreten.

  3. Repeatable Read — die Transaktion sieht einen Schnappschuss der Daten zum Zeitpunkt des Beginns. Alle Abfragen innerhalb der Transaktion sehen die gleichen Daten, auch wenn andere Transaktionen sie ändern und bestätigen. Verhindert nicht wiederholbare Reads, erlaubt aber Phantom Reads.

  4. Serializable — die strengste Isolationsstufe. Garantiert eine vollständige Serialisierung der Transaktionen, verhindert Phantom Reads und sorgt für ein Verhalten, das einer sequenziellen Ausführung entspricht.

Beispiel für die Einstellung der Isolationsstufe:

BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- SQL-Operationen
COMMIT;