Existe el problema de las transacciones concurrentes y los niveles de aislamiento

La base de datos es una de subprocesos múltiples aplicaciones, multi-hilo algunos de los problemas que habrá concurrente, aquí principalmente para las lecturas fantasma, no conteste la lectura repetida, hacer algo sucio leer Introducción

  Sucia leer: Una transacción lee los datos a otra transacción no confirmada

  lectura no repetible: varias consultas en una sola pantalla de transacción de inconsistente

  Phantom leer: número inconsistente de veces dentro de un resultado de transacción devuelto por la consulta

Hay una base de datos de aislamiento de transacción, y el aislamiento de las distintas aplicaciones, aquí conduce a niveles de aislamiento de transacción de nivel de aislamiento parecen resolver los problemas antes mencionados.

nivel de aislamiento se divide en:

  1. Lectura no confirmada (lectura no confirmada): el nivel más bajo de aislamiento de transacción de base de datos, es posible que las lecturas sucias, lectura no repetible, lectura fantasma
  2. Lectura confirmada (lectura confirmada): sólo se puede leer entre la transacción se ha presentado, es posible resolver el problema de las lecturas sucias, pero no resuelve el lectura no repetible, las lecturas fantasma problema
  3. Lectura repetible (repetible lecturas): sucio evitar lee, lectura no repetible, lectura fantasma no se puede evitar
  4. Serialize (Serializable): puede ser entendido como un solo hilo de ejecución, una transacción en cola para su ejecución, resuelve sucio lee, lectura no repetible, lectura fantasma problema
nivel de aislamiento lectura sucia lectura no repetible la magia de lectura
Lectura no confirmada (-lectura no confirmada) × × ×
Lectura confirmada (-comprometidos leer)  √  × ×
Lectura repetible (repetible-lectura)  √  √ × 
Serialización (Serializable)  √ √   √

 MySQL soporta cuatro niveles de aislamiento, el nivel de aislamiento por defecto es de lectura repetible.

 soportes de Oracle solamente: Lectura confirmada, tanto serializados nivel de aislamiento, el nivel de aislamiento de lectura confirmada por defecto es

Nota: Algunas personas pueden tener dudas, ¿por qué existe este tipo de cuatro niveles de aislamiento, no serialización ha resuelto tres problemas? Mientras que la serialización de resolver estos tres problemas, pero serializado eficiencia en la ejecución es muy ineficiente, que tiene la lógica de código para controlar las transacciones ejecutadas una por una, asi que aquí con el fin de mejorar la eficiencia, tales como el nivel de aislamiento predeterminado de MySQL para ser lectura repetible, las lecturas fantasma porque la gente puede aceptar, a cambio de un rendimiento relativamente alto de procesamiento concurrente

 

Supongo que te gusta

Origin www.cnblogs.com/gsic/p/12601948.html
Recomendado
Clasificación