sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo funciona la suspensión de transacciones en MySQL?

No significa nada especial, una transacción suspendida es solo una transacción que no se usa temporalmente para inserciones, actualizaciones, confirmación o reversión, porque se debe crear una nueva transacción debido a las propiedades de propagación especificadas, y solo una transacción puede estar activa al mismo tiempo.

Básicamente hay dos modelos de transacción:el anidado y plano modelo. En el modelo anidado, si inicia una transacción y necesita otra, la primera permanece activa, es decir, la segunda se anidará dentro de su padre, y así sucesivamente. En cambio, en el modelo plano, la primera transacción quedará suspendida, es decir, no la utilizaremos hasta que se haya completado la nueva.

AFAIK, el modelo plano se usa casi exclusivamente (incluidas Spring y la especificación EJB también), ya que es mucho más fácil de implementar :solo hay una transacción activa en un momento dado, por lo que es fácil decidir qué hacer en caso de una reversión, por ejemplo, debido a una excepción. Más importante aún, la base de datos subyacente debe admitirlo si necesita el modelo anidado, por lo que el modelo plano es solo el denominador común en este caso.