Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie funktioniert die Transaktionssperre in MySQL?

Es bedeutet nichts Besonderes, eine ausgesetzte Transaktion ist nur eine Transaktion, die vorübergehend nicht verwendet wird B. für Inserts, Updates, Commit oder Rollback, da aufgrund der angegebenen Propagationseigenschaften eine neue Transaktion erstellt werden soll und immer nur eine Transaktion gleichzeitig aktiv sein kann.

Grundsätzlich gibt es zwei Transaktionsmodelle:das verschachtelte und das flache Modell. Wenn Sie im verschachtelten Modell eine Transaktion starten und eine andere benötigen, bleibt die erste aktiv, d. h. die zweite wird in ihrem übergeordneten Element verschachtelt, und so weiter. Andererseits wird beim flachen Modell die erste Transaktion ausgesetzt, d. h. wir verwenden sie nicht, bis die neue abgeschlossen ist.

AFAIK wird fast ausschließlich das flache Modell verwendet (einschließlich Spring und auch der EJB-Spezifikation), da es viel einfacher zu implementieren ist :Es gibt immer nur eine aktive Transaktion, daher ist es einfach zu entscheiden, was im Falle eines Rollbacks, beispielsweise aufgrund einer Ausnahme, zu tun ist. Noch wichtiger ist, dass die zugrunde liegende Datenbank dies unterstützen muss, wenn Sie das verschachtelte Modell benötigen, sodass das flache Modell nur der gemeinsame Nenner ist in diesem Fall.