Saltar al contenido
uencoder

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 COMMITTED
    Output
    Avoids dirty reads

    PostgreSQL default

Errores comunes

Low isolation levels cause non-repeatable/phantom reads
Choose the isolation level per business needs

Términos relacionados

References