Isolation Level
Los niveles de aislamiento definen la visibilidad entre transacciones concurrentes, desde lectura no confirmada hasta serializable; niveles más altos dan mayor consistencia pero menor concurrencia.
Propósito
Equilibrar el rendimiento concurrente con la consistencia y elegir un nivel de aislamiento adecuado.
Mecanismo
Lectura no confirmada (lecturas sucias), lectura confirmada (lecturas no repetibles), lectura repetible (lecturas fantasma), serializable (sin anomalías). MVCC implementa aislamiento de instantánea (entre lectura repetible y serializable). PostgreSQL usa por defecto lectura confirmada; MySQL InnoDB, lectura repetible.
Casos de uso
- Control de consistencia de transacciones concurrentes
- Lectura confirmada para evitar lecturas sucias
- Lectura repetible para consistencia de informes
- Serializable para consistencia fuerte
Ejemplos
- entrada
SET TRANSACTION ISOLATION LEVEL READ COMMITTEDOutputAvoids dirty readsPostgreSQL default
Errores comunes
- Low isolation levels cause non-repeatable/phantom reads
- Choose the isolation level per business needs
Términos relacionados
ACID
ACID son las cuatro propiedades de las transacciones relacionales: atomicidad (todo o nada), consistencia (se mantienen las restricciones), aislamiento (concurrencia sin interferencia), durabilidad (persistencia tras commit). GLOSARIO
Transaction
Una transacción es un grupo de operaciones ejecutadas como una única unidad lógica que satisface ACID: todo o nada. GLOSARIO