Transacción de mysql [resumen]

Transacción: la unidad de trabajo más pequeña para ejecutar sentencias SQL en la base de datos, asegurando que múltiples sentencias SQL en la transacción sean todas exitosas o todas fallen;

Una empresa completa requiere un lote de estados de cuenta DML (insertar, actualizar, eliminar) para que se completen conjuntamente. Las transacciones solo están relacionadas con los estados de cuenta DML o los estados de cuenta DML tienen transacciones.

1. Cuatro características de los asuntos (ACID):

  1. Atomicidad: Atomicidad, mínima inseparabilidad, garantizan todo éxito o todo fracaso;
  2. Coherencia: coherencia, de un estado coherente a otro estado coherente (cuando se requiere que todas las instrucciones DML funcionen, se debe garantizar que tendrán éxito o fallarán al mismo tiempo);
  3. Aislamiento: aislamiento, múltiples transacciones se aíslan entre sí sin afectarse entre sí;
  4. Durabilidad: Durabilidad, después de que se confirma la transacción, los datos se conservan.

2. Utilice los términos de la transacción:

  • Abra la transacción:Start Transaction;
  • Fin de la transacción:End Transaction;
  • Confirmar la transacción:Commit Transaction;
  • Revertir la transacción: Rollback Transaction;

3. Instrucciones relacionadas con asuntos:

  • Verifique el estado de envío automático:show variables like '%autocommit%';
  • Envío automático de modificaciones:set autocommit = 0/1;
  • enviar:commit;
  • Retroceder:rollback;
  • Guardar punto de reversión:savepoint s1;
  • Retroceder al punto de retroceso especificado:rollback to s1;

4. El signo del inicio y final de la transacción:

  • Bandera de apertura: cualquier declaración DML (insertar, actualizar, eliminar) se ejecuta para marcar la apertura de la transacción;
  • Señal de fin:
    • Enviar: Finalización satisfactoria: sincronizar todos los registros del historial de operaciones de la declaración DML y los datos del disco duro subyacentes a la vez;
    • Revertir: el final del error: borre todos los registros del historial de todas las operaciones de declaración DML.

5. Transacción y datos de nivel inferior de la base de datos: Durante el proceso de transacción, las declaraciones DML no cambiarán los datos del nivel inferior antes de que finalice, sino que solo registrarán las operaciones históricas y completarán el registro en la memoria. Solo al final de la transacción, y cuando finalice correctamente, se modificarán los datos del archivo del disco duro subyacente.

6. En Mysql, la transacción se confirma y se deshace:

  • En Mysql, de forma predeterminada, la transacción se confirma automáticamente, es decir, siempre que se ejecute una declaración DML, la transacción se abre y la transacción se confirma.
  • Después de usar la set autocommit = 0;transacción cerrada anterior , puede usar commit;y rollback;para confirmar y revertir manualmente.

7. Una de las cuatro características principales de las transacciones: enlace de referencia de aislamiento (aislamiento)

Existe un cierto grado de aislamiento entre la transacción A y la transacción B, y el aislamiento tiene un nivel de aislamiento: (4)

  1. Leer sin confirmar: leer sin confirmar
  2. Leer comprometido: leer comprometido
  3. Lectura repetible: lectura repetible
  4. Serialización: serializable

1) leer no comprometido

- 事物A和事物B,事物A未提交的数据,事物B可以读取到
- 这里读取到的数据叫做“脏数据”
- 这种隔离级别最低,这种级别一般是在理论上存在,数据库隔离级别一般都高于该级别

2) leer comprometido

- 事物A和事物B,事物A提交的数据,事物B才能读取到
- 这种隔离级别高于读未提交
- 换句话说,对方事物提交之后的数据,我当前事物才能读取到
- 这种级别可以避免“脏数据”
- 这种隔离级别会导致“不可重复读取”
- Oracle默认隔离级别

3) lectura repetible

- 事务A和事务B,事务A提交之后的数据,事务B读取不到
- 事务B是可重复读取数据
- 这种隔离级别高于读已提交
- 换句话说,对方提交之后的数据,我还是读取不到
- 这种隔离级别可以避免“不可重复读取”,达到可重复读取
- 比如1点和2点读到数据是同一个
- MySQL默认级别
- 虽然可以达到可重复读取,但是会导致“幻像读”

4) serializable

- 事务A和事务B,事务A在操作数据库时,事务B只能排队等待
- 这种隔离级别很少使用,吞吐量太低,用户体验差
- 这种级别可以避免“幻像读”,每一次读取的都是数据库中真实存在数据,事务A与事务B串行,而不并发

8. La relación entre el nivel de aislamiento y la coherencia:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44296929/article/details/108667640
Recomendado
Clasificación