Sobes.tech
Middle

¿Cuál es la clasificación existente de niveles de aislamiento?

sobes.tech AI

Respuesta de la IA

Los niveles de aislamiento en las bases de datos determinan qué tan aisladas están las transacciones entre sí y de los cambios realizados por otras transacciones. Previenen diversos problemas de acceso concurrente.

Clasificación de niveles de aislamiento (estándar SQL):

  • READ UNCOMMITTED
    • Permite leer cambios no confirmados (lectura sucia / dirty read).
    • Problemas: lectura sucia, lectura no repetible, lectura fantasma.
  • READ COMMITTED
    • Permite leer solo cambios confirmados.
    • Prohíbe la lectura sucia.
    • Problemas: lectura no repetible, lectura fantasma.
    • Nivel más utilizado por defecto.
  • REPEATABLE READ
    • Garantiza que la misma lectura de un conjunto de filas en una transacción devolverá los mismos datos, incluso si otras transacciones los modifican.
    • Prohíbe la lectura sucia y la lectura no repetible.
    • Problema: lectura fantasma (aparición de nuevas filas que cumplen la condición de selección).
  • SERIALIZABLE
    • Nivel más alto de aislamiento.
    • Garantiza la ausencia total de problemas de acceso concurrente. Las transacciones se ejecutan como si se hicieran de forma secuencial.
    • Prohíbe la lectura sucia, la lectura no repetible y la lectura fantasma.
    • Puede afectar significativamente el rendimiento.

Problemas de acceso concurrente:

Problema READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE
Lectura sucia No No No
Lectura no repetible No No
Lectura fantasma No

La elección del nivel de aislamiento depende de los requisitos de la aplicación y del compromiso entre integridad de datos y rendimiento.