Heim >Datenbank >MySQL-Tutorial >Was sind die vier Isolationsstufen von Transaktionen?

Was sind die vier Isolationsstufen von Transaktionen?

王林
王林Original
2020-07-01 14:52:3715035Durchsuche

Die vier Isolationsstufen von Transaktionen sind: 1. Nicht festgeschriebene Inhalte lesen (Read Uncommitted); 3. Wiederholbares Lesen (Repeatable Read);

Was sind die vier Isolationsstufen von Transaktionen?

Vier Isolationsstufen von Transaktionen:

(empfohlenes Lernen: MySQL-Tutorial)

1. Nicht festgeschriebenen Inhalt lesen – Nicht festgeschriebenen Inhalt lesen

  • Eine Transaktion kann nicht festgeschriebenen Inhalt anzeigen

  • Dirty Reading-Probleme treten häufig auf (Dirty Reading: Lesen nicht festgeschriebener (ausgeführter) Inhalte anderer Transaktionen)

Öffnen Sie zwei Transaktionen A und B für dieselbe Datentabelle (A-, B-Transaktionskreuzung) und starten Sie die Transaktion

Eine Transaktion fragt nur den Inhalt in der Datentabelle ab, die B-Transaktion führt Hinzufügungs-, Lösch- und Änderungsvorgänge aus, führt jedoch kein Commit (Senden) aus.

Eine Transaktion kann weiterhin die Daten in der Tabelle abfragen nicht festgeschriebener Inhalt – Dirty Read)

2. Festgeschrieben lesen – den übermittelten Inhalt lesen

  • Nur ​​eine Transaktion Möglichkeit, übermittelte Inhalte anzuzeigen

  • Nicht wiederholbare Leseprobleme treten häufig auf (nicht wiederholbare Lesevorgänge: Die Ausführung derselben Select-Anweisung in derselben Transaktion führt zu unterschiedlichen Ergebnissen)

Öffnen Sie zwei Transaktionen A und B für dieselbe Datentabelle (A- und B-Transaktionen überschneiden sich) Transaktion starten

Eine Transaktion fragt nur den Inhalt in der Datentabelle ab, und die B-Transaktion führt Hinzufügungs-, Lösch- und Änderungsvorgänge aus, führt jedoch kein Commit durch ( Senden)

Transaktion A kann die geänderten Daten in der Tabelle nicht abfragen

Transaktion B sendet

Die von A gefundenen geänderten Daten (A fragt zweimal ab, was zu unterschiedlichen Ergebnissen führt - nicht -wiederholbares Lesen)

3. Wiederholbares Lesen - wiederlesbar

  • Wenn mehrere Instanzen derselben Transaktion gleichzeitig Daten lesen, erhalten Sie das gleiche Ergebnis

  • Die standardmäßige Transaktionsisolationsstufe von MySQL

  • führt häufig zu Problemen beim Phantomlesen (Phantomlesen: unterschiedliche Ergebnisse beim mehrmaligen Lesen) (Phantomzeile))

Öffnen Sie zwei Transaktionen A und B für dieselbe Datentabelle (A- und B-Transaktionen kreuzen sich) und starten Sie die Transaktion

Eine Transaktion fragt nur den Inhalt der Datentabelle ab, Transaktion B führt die Addition durch. Lösch- und Änderungsvorgänge, aber kein Commit (Senden)

Eine Transaktion kann den Inhalt der Datenänderungen in der Tabelle nicht abfragen

B-Transaktion wird festgeschrieben

Eine Transaktion fragt den Inhalt ab der Datenänderungen in der Tabelle können nicht gefunden werden

A Senden

A Die Änderungen in den Daten in der Tabelle können abgefragt werden

4. Serialisierbar – Serialisierbar

  • Die höchste Isolationsstufe

  • Fügen Sie der Transaktion eine gemeinsame Sperre hinzu, und es kann jeweils nur eine Transaktionsoperation vorhanden sein Gleichzeitig wird das Phantomleseproblem gelöst

  • Verursacht viele Zeitüberschreitungen und Probleme mit Sperrkonflikten

Öffnen Sie Transaktion A

Dieser Vorgang kann nicht hinzugefügt oder gelöscht werden, wenn Transaktion B geöffnet wird

Das obige ist der detaillierte Inhalt vonWas sind die vier Isolationsstufen von Transaktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn