¿Qué niveles de aislamiento de transacciones de PostgreSQL conoces?
sobes.tech AI
Respuesta de la IA
En PostgreSQL, existen cuatro niveles de aislamiento de transacciones definidos por el estándar SQL:
-
Read Uncommitted — el nivel de aislamiento más bajo. Permite leer datos que aún no han sido confirmados (lecturas sucias). En PostgreSQL, en realidad se comporta como Read Committed, ya que no soporta lecturas sucias.
-
Read Committed — nivel predeterminado. La transacción solo ve los datos que han sido confirmados en el momento de cada consulta individual. Pueden aparecer cambios hechos por otras transacciones entre consultas dentro de la misma transacción.
-
Repeatable Read — la transacción ve una instantánea de los datos en el momento en que comenzó. Todas las consultas dentro de la transacción ven los mismos datos, incluso si otras transacciones los modifican y confirman. Previene lecturas no repetibles, pero permite lecturas fantasma.
-
Serializable — el nivel de aislamiento más estricto. Garantiza la serialización completa de las transacciones, previene lecturas fantasma y asegura un comportamiento equivalente a la ejecución secuencial de las transacciones.
Ejemplo de configuración del nivel de aislamiento:
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- Operaciones SQL
COMMIT;