Transaktionsisolationsgrade
Isolationsgrade regeln, wie Transaktionen Datenänderungen anderer beobachten, und gleichen Integrität mit Systemparallelität ab.
Isolationsgrade regeln die Interaktion gleichzeitiger Transaktionen. Die vier ANSI-Standards sind: READ UNCOMMITTED (Dirty Reads), READ COMMITTED (verhindert Dirty Reads), REPEATABLE READ (stabile Daten) und SERIALIZABLE (serielle Ausführung). Jeder bietet einen Kompromiss zwischen Parallelität und Konsistenz. MVCC-Systeme nutzen Snapshots für nicht-blockierende Lesevorgänge.
graph LR
Center["Transaktionsisolationsgrade"]:::main
Rel_transaction["transaction"]:::related -.-> Center
click Rel_transaction "/terms/transaction"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Erkläre es wie einem 5-Jährigen
Generated ELI5 content
🤓 Expert Deep Dive
Generated expert content
❓ Häufig gestellte Fragen
What is a dirty read?
Reading data that has been modified but not yet committed by another transaction.
What is a non-repeatable read?
Reading the same data twice within a single transaction yields different results because another transaction committed changes in between.
What is a phantom read?
A new row matching a query appears in subsequent reads within the same transaction, due to inserts by other transactions.
Which isolation level prevents dirty reads?
READ COMMITTED or SERIALIZABLE (and REPEATABLE READ) prevent dirty reads.
How should I choose an isolation level?
Base the choice on the required balance between correctness guarantees and concurrency, adjusting per operation, and consider MVCC or locking behavior of your DBMS.