¿Qué nivel de aislamiento de transacciones evita lecturas sucias?
Lectura no confirmada, Lectura confirmada, Lectura repetible, Serializable.
Existen cuatro tipos de niveles de aislamiento de transacciones, de menor a mayor: lectura no confirmada, lectura confirmada, lectura repetible y serializable. Además, pueden producirse lecturas sucias, lecturas no repetibles y lecturas fantasma durante transacciones simultáneas.
Leer no confirmada significa que una transacción puede leer los datos de otra transacción no confirmada. Lectura confirmada significa que una transacción debe esperar a que se confirme otra transacción antes de poder leer datos. La lectura repetible es una lectura repetible, es decir, cuando se inicia la lectura de datos (se inicia la transacción), ya no se permiten operaciones de modificación.
Serializable es el nivel más alto de aislamiento de transacciones. En este nivel, las transacciones se ejecutan en serie y secuencialmente, lo que puede evitar lecturas sucias, lecturas no repetibles y lecturas fantasma. Sin embargo, este nivel de aislamiento de transacciones es ineficiente y consume el rendimiento de la base de datos, por lo que generalmente no se utiliza. El nivel de aislamiento de transacciones predeterminado de la mayoría de las bases de datos es Lectura confirmada y el nivel de aislamiento predeterminado de Mysql es Lectura repetible.