Niveles de Aislamiento de Transacciones
Regulan cómo las operaciones observan los datos modificados por otros, equilibrando la integridad con la concurrencia.
Los niveles de aislamiento gobiernan la interacción de transacciones concurrentes. Los cuatro niveles ANSI son: READ UNCOMMITTED (lecturas sucias), READ COMMITTED (evita sucias), REPEATABLE READ (datos estables) y SERIALIZABLE (ejecución serial). Cada uno compensa entre concurrencia y consistencia. Las implementaciones MVCC usan instantáneas para lecturas sin bloqueo.
graph LR
Center["Niveles de Aislamiento de Transacciones"]:::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;
🧒 Explícalo como si tuviera 5 años
Generated ELI5 content
🤓 Expert Deep Dive
Generated expert content
❓ Preguntas frecuentes
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.