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 | Sí | No | No | No |
| Lectura no repetible | Sí | Sí | No | No |
| Lectura fantasma | Sí | Sí | Sí | 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.