Cómo generar el nivel de aislamiento de transacciones predeterminado de mysql jdbc
A continuación utilizaremos el programa cliente MySQL para probar varios niveles de aislamiento respectivamente. La base de datos de prueba es prueba y la tabla es tx estructura de tabla:
id
int
num
int
;Los dos clientes de línea de comando son A y B; cambian constantemente el nivel de aislamiento de A y modifican los datos en el lado B.
(i) Establezca el nivel de aislamiento de A en lectura
No confirmado
Antes de que B actualice los datos:
Cliente A:
B Datos actualizados:
Cliente B:
Cliente A:
Después del experimento anterior, se puede concluir: Transacción B Se actualiza el registro pero no comprometido. En este momento, la transacción A puede consultar los registros no confirmados. Esto resultará en una lectura sucia. La lectura no confirmada es el nivel de aislamiento más bajo.
(ii), establezca el nivel de aislamiento de transacción del cliente A en lectura
Committed (lectura confirmada)
Antes de que B no actualice los datos: p>
Cliente A:
Datos actualizados B:
Cliente B:
Cliente A:
Después de los experimentos anteriores , Se puede concluir que el nivel de aislamiento de lectura comprometida resuelve el problema de las lecturas sucias, pero ocurre el problema de las lecturas no repetibles, es decir, los datos de la transacción A son inconsistentes entre dos consultas porque la transacción B actualizó un dato. entre dos consultas. Las lecturas confirmadas solo permiten leer registros confirmados, pero no requieren lecturas repetibles.