1. Transaktionen haben ACID-Eigenschaften
2. Transaktionsisolationsebene 1) Definition und Probleme der Isolationsstufe
2) Wenn Sie die Änderungs- und Isolationsstufe von MySQL anzeigen Variablen wie „tx_isolation“ anzeigen; # Isolationsebene vor MySQL8 anzeigen Variablen wie „transaction_isolation“ anzeigen; # Isolationsebene vor MySQL8 anzeigen setze global transaction_isolation='READ-COMMITTED'; // Setze die Isolationsebene, Ventildomäne READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE Die Transaktionsisolationsebene kann auf Sitzungsebene liegen. Wir können für verschiedene Sitzungen unterschiedliche Ebenen festlegen: Legen Sie die Isolationsebene für Sitzungstransaktionen fest und lesen Sie nicht fest. Isolationsstufe für Sitzungstransaktionen festlegen, Lesen festgeschrieben; Legen Sie die Isolationsstufe für Sitzungstransaktionen fest und erlauben Sie ein wiederholbares Lesen. Legen Sie die serialisierbare Isolationsebene für Sitzungstransaktionen fest. 3) Isolationsstufe für Spring-Transaktionen Spring-Transaktionen verwenden standardmäßig die Datenbankisolationsstufe. Sie können die Sitzungsisolationsstufe anpassen, indem Sie den Isolationsparameter in @Transactional kommentieren. Die Isolationsebene befindet sich auf Sitzungsebene und die JDBC-Schnittstelle java.sql.Connection unterstützt das Festlegen der Isolationsebene. Wenn Spring eine Transaktion startet (DataSourceTransactionManager.doBegin), legt es die Isolationsstufe der Verbindung entsprechend der Annotation-Konfiguration fest: Der MySQL-Treiber com.mysql.cj.jdbc.ConnectionImpl führt SQL-Anweisungen aus, um die Isolationsstufe auf Sitzungsebene anzupassen 3. Sackgasse Ein Deadlock tritt auf, wenn zwei oder mehr Transaktionen dieselbe Ressource belegen und die Sperrung der von den anderen Transaktionen belegten Ressourcen anfordern, wodurch ein Teufelskreis entsteht. Deadlock-Beispiel: # Transaktion 1 Transaktion starten; Konto aktualisieren, Geld festlegen=10, wobei ID=1; Konto aktualisieren, Geld festlegen=20, wobei ID=2; begehen; # Transaktion 2, Transaktion starten; Konto aktualisieren, Geld festlegen=10, wobei ID=2; Konto aktualisieren, Geld festlegen=20, wobei ID=1; begehen; Angenommen, Transaktion 1 und Transaktion 2 führen zufällig gleichzeitig die erste Aktualisierungsanweisung aus und bereiten sich dann auf die Ausführung der zweiten Aktualisierungsanweisung vor, stellen jedoch fest, dass der Datensatz von der anderen Partei gesperrt wurde. Dann warten die beiden Transaktionen darauf, dass die andere Partei Ressourcen freigibt, während sie die von der anderen Partei benötigte Sperre aufrechterhalten, was zu einer Endlosschleife führt. Um Deadlock-Probleme zu vermeiden, implementiert die Datenbank verschiedene Mechanismen zur Deadlock-Erkennung und zur Vermeidung von Deadlock-Überlängen. InnoDB behandelt Deadlocks, indem es die Transaktion zurücksetzt, die die kürzeste exklusive Sperre auf Zeilenebene enthält. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Vue implementiert Mehrfachauswahl im unteren Popup-Fenster
>>: Detaillierte Erläuterung häufiger Xshell-Probleme und zugehöriger Konfigurationen
Wenn Sie Ihre Django-Anwendungen erstellen und sk...
Datensortierung aufsteigend, absteigend 1. Sortie...
CSS-Stil: Code kopieren Der Code lautet wie folgt:...
Jeder, der das Linux-System verwendet hat, sollte...
Die Wirkung ist wie folgt:Referenzprogramm: <!...
1. Konfiguration der Serverumgebung: 1. Überprüfe...
MySQL ist das beliebteste relationale Datenbankma...
Viele Webseiten haben kleine Dreiecke in ihren Na...
Dies ist ein Problem, das leicht übersehen wird. ...
Führen Sie die folgenden Vorgänge im Ubuntu-Befeh...
Vorwort Das Miniprogramm verfügt über eine sehr p...
Bereitstellungsumgebung: Hier wird ein Docker-Con...
Vorwort MySQL unterstützt Multithread-Replikation...
Inhaltsverzeichnis Einführung in Bootstrap und di...
Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...