PostgreSQL | ||
---|---|---|
Anterior | Multi-Version Concurrency Control (Control de la Concurrencia Multi Versión) | Siguiente |
El estándar ANSI/ISO SQL define cuatro niveles de aislamiento transaccional en función de tres hechos que deben ser tenidos en cuenta entre transacciones concurrentes. Estos hechos no deseados son:
Una transacción lee datos escritos por una transacción no esperada, no cursada.
Una transacción vuelve a leer datos que previamente había leído y encuentra que han sido modificados por una transacción cursada.
Una transacción vuelve a ejecutar una consulta, devolviendo un conjuto de filas que satisfacen una condición de búsqueda y encuentra que otras filas que satisfacen la condición han sido insertadas por otra transacción cursada.
Los cuatro niveles de aislamiento y sus correspondientes acciones se describen más abajo.
Tabla 1. Niveles de aislamiento de Postgres
Lectura "sucia" | Lectura no repetible | Lectura "fantasma" | |
---|---|---|---|
Lectura no cursada | Posible | Posible | Posible |
Lectura cursada | No posible | Posible | Posible |
Lectura repetible | No posible | No posible | Posible |
Serializable | No posible | No posible | No posible |