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
Geben Sie ein Shell-Skript unter Linux frei, um d...
1. Nach der Installation von MySQL 5.6 kann es ni...
Im Docker-Design führt ein Container nur eine Anw...
Code kopieren Der Code lautet wie folgt: <Stil...
Inhaltsverzeichnis 1 Ausführung und Planung 1.1 V...
Der Effekt, den wir erreichen müssen: Was wird be...
Vorwort Heute habe ich das Erzeugungsmuster im En...
Vorwort Wenn Sie ein Topmenü erstellen, müssen Si...
Inhaltsverzeichnis Download des Installationspake...
Lassen Sie uns nun mehrere Situationen zur Steuer...
1. Anwendungsszenarien Übergeordnete Seite a.jsp U...
Benutzer- und Gruppenverwaltung 1. Grundlegende K...
Alphabetisch DTD: Gibt an, in welcher XHTML 1.0 D...
Empfohlene Docker-Lernmaterialien: https://www.ru...
Inhaltsverzeichnis Vorwort Zweidimensionales Arra...