Ich kenne lediglich den Isolationsgrad der Dinge, habe sie jedoch noch nie bedient. Dirty Read: Eine Transaktion hat ein Datenelement aktualisiert und eine andere Transaktion liest zu diesem Zeitpunkt dieselben Daten. Aus irgendeinem Grund führt die vorherige Transaktion einen RollBack für den Vorgang aus, sodass die von der letzteren Transaktion gelesenen Daten falsch sind. Nicht wiederholbares Lesen: Die Daten zwischen zwei Abfragen in einer Transaktion sind inkonsistent. Dies kann daran liegen, dass eine Transaktion die Originaldaten zwischen den beiden Abfragen aktualisiert hat. Phantom Read: Die Anzahl der Dateneinträge in zwei Abfragen einer Transaktion ist inkonsistent. Beispielsweise fragt eine Transaktion mehrere Datenspalten ab, während eine andere Transaktion zu diesem Zeitpunkt mehrere neue Datenspalten einfügt. In der nächsten Abfrage findet die vorherige Transaktion mehrere Datenspalten, die sie vorher nicht hatte. 4 Isolationsebenen von MySQL read uncommitted: Daten lesen, die nicht festgeschrieben wurden: Keines der Probleme ist gelöst
Erstellen Sie eine Datentabelle:Tabelle erstellen shuzhi ( id mediumint(8) Primärschlüssel, Name varchar(30), Shuzhi-Mittelwert (10) ); Tabelle ändern Shuzhi Engine = InnoDB; in Shuzhi-Werte einfügen (1, 'aa', 1000); in Shuzhi-Werte einfügen (2, „bb“, 2000); in Shuzhi-Werte einfügen (3, „cc“, 3000); in Shuzhi-Werte einfügen (4, 'dd', 4000); in Shuzhi-Werte einfügen (5, 'ee', 5000); in Shuzhi-Werte einfügen (6, „ff“, 6000); in Shuzhi-Werte einfügen (7, „gg“, 7000); in Shuzhi-Werte einfügen (8, „hh“, 8000); Beginnen Sie mit dem Testen der vier Isolationsebenen von Transaktionen. Die erste: read uncommitted Festlegen der Isolationsebene#Fragen Sie die aktuelle Isolationsstufe ab SELECT @@tx_isolation #Isolationsstufe festlegen Isolationsstufe für Sitzungstransaktionen festlegen [Isolationsstufe] Sitzungstransaktionsisolierungsebene festlegen Lesen nicht festgeschrieben Starten Sie zuerst den ersten Prozess und starten Sie die Transaktion, ohne sie noch abzufragen Fenster 1 Transaktion starten; Öffnen Sie dann den zweiten Prozess (Terminal) Fenster 2 Transaktion starten; Aktualisiere Shuzhi, setze Shuzhi='8888', wobei ID=7 ist; Gehen Sie zur Datenbankabfrage und stellen Sie fest, dass der Wert von id = 7 immer noch 7000 ist und sich der Wert nicht geändert hat Gehen Sie zu Fenster 1, um diesen Datensatz abzufragen Fenster 1 Transaktion starten; Wählen Sie * aus Shuzhi, wobei ID = 7 ist. Es wird festgestellt, dass die gelesenen Daten die in Fenster 2 übermittelten Daten sind, nicht 7000 Dies ist das Ende dieses Artikels über Details und Beispiele zur MySQL-Isolationsebene. Weitere Informationen zur MySQL-Isolationsebene finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Select unterstützt kein Doppelklick-DBClick-Ereignis
>>: Demo für 10-Farbverlaufshintergrund des CSS-Containers (linear-gradient())
1. Grundlegende Implementierung des Limits Im All...
Inhaltsverzeichnis Vorwort Zusammenfassung der Au...
Vorwort Ein Zeichensatz ist eine Reihe von Symbol...
Ein Webserver kann mehrere Websites mit unabhängi...
Ich habe kürzlich mit der Remote-Entwicklungsfunk...
Vorteile der Verwendung von xshell zur Verbindung...
Inhaltsverzeichnis 1. Art von 2. Instanz von 3. U...
Möglicherweise müssen Sie in Linux manchmal symbo...
In diesem Artikel wird der spezifische Code von J...
Dieser Abschnitt bietet einen Überblick über eini...
Inhaltsverzeichnis 1. Aktuelle Situation 2. Commu...
Inhaltsverzeichnis Vorwort Lua-Skript nignx.conf-...
1. Bearbeiten Sie die PAM-Konfigurationsdatei sud...
Skriptanforderungen: Sichern Sie die MySQL-Datenb...
Was ist ein Index? Warum einen Index erstellen? I...