Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene

Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene

Überprüfen Sie die Transaktionsisolationsebene

In MySQL können Sie die aktuelle Transaktionsisolationsstufe durch Anzeigevariablen wie „%tx_isolation%“ oder die Auswahl der Anweisung „@@tx_isolation;“ anzeigen.

Die SQL-Anweisungen und Laufergebnisse zum Anzeigen der aktuellen Transaktionsisolationsebene lauten wie folgt:

mysql> Variablen wie „%tx_isolation%“ anzeigen;
+---------------+-----------------+
| Variablenname | Wert |
+---------------+-----------------+
| tx_isolation | WIEDERHOLBARES LESEN |
+---------------+-----------------+
1 Zeile im Satz, 1 Warnung (0,17 Sek.)
mysql> wähle @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| WIEDERHOLBARES LESEN |
+-----------------+
1 Zeile im Satz, 1 Warnung (0,00 Sek.)

Die Ergebnisse zeigen, dass die aktuelle Transaktionsisolationsebene von MySQL REPEATABLE-READ ist.

Darüber hinaus können Sie die folgenden Anweisungen verwenden, um die globalen und Sitzungstransaktionsisolierungsebenen abzufragen:

WÄHLEN SIE @@global.tx_isolation;
Wählen Sie @@session.tx_isolation;

Tipp: In MySQL 8.0.3 wurde die Variable tx_isolation durch die Variable transaction_isolation ersetzt. Um die Transaktionsisolationsebene in MySQL 8.0.3 abzufragen, ersetzen Sie einfach die Variable tx_isolation in der obigen Abfrage durch die Variable transaction_isolation.

Ändern der Transaktionsisolationsebene

MySQL bietet die Anweisung SET TRANSACTION, mit der die Transaktionsisolationsebene für eine einzelne Sitzung oder global geändert werden kann. Das Syntaxformat ist wie folgt:

SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {LESEN UNCOMMITTED | LESEN COMMITTED | WIEDERHOLBARES LESEN | SERIALIZABLE}

Die Schlüsselwörter SESSION und GLOBAL werden verwendet, um den Umfang der geänderten Transaktionsisolationsebene anzugeben:

  • SESSION: Gibt an, dass die geänderte Transaktionsisolationsebene auf alle Transaktionen in der aktuellen Sitzung (aktuelles Befehlsfenster) angewendet wird.
  • GLOBAL: Gibt an, dass die geänderte Transaktionsisolationsstufe auf alle Transaktionen in allen Sitzungen (global) angewendet wird und die vorhandenen Sitzungen davon nicht betroffen sind.
  • Wenn SESSION und GLOBAL weggelassen werden, wird die geänderte Transaktionsisolationsebene auf die nächste Transaktion angewendet, die in der aktuellen Sitzung noch nicht gestartet wurde.

Jeder Benutzer kann die Transaktionsisolationsebene für eine Sitzung ändern, aber nur Benutzer mit dem SUPER-Privileg können die globale Transaktionsisolationsebene ändern.

Wenn Sie einen normalen Benutzer verwenden, um die globale Transaktionsisolationsebene zu ändern, wird Ihnen eine Fehlermeldung angezeigt, dass für die Ausführung dieses Vorgangs Superprivilegien erforderlich sind. Die SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt:

C:\Benutzer\leovo>mysql -utestuser -p
Passwort eingeben: ******
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 41
Serverversion: 5.7.29-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2020, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.
 
Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.
 
Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.
 
mysql> GLOBALE TRANSAKTIONSISOLIERSTUFE FESTLEGEN, LESEN UNCOMMITTED;
FEHLER 1227 (42000): Zugriff verweigert; Sie benötigen (mindestens eines) der SUPER-Privilegien für diesen Vorgang
mysql> Sitzungstransaktionsisolierungsebene festlegen, nicht festgeschrieben lesen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Beispiel 1

Mit der Anweisung SET TRANSACTION können Sie die Isolationsebenen für Sitzungen und globale Transaktionen ändern. Die SQL-Anweisungen und die Ergebnisse der Ausführung lauten wie folgt:

mysql> wähle @@session.tx_isolation;
+------------------------+
| @@session.tx_isolation |
+------------------------+
| SERIALISIERBAR |
+------------------------+
1 Zeile im Satz, 1 Warnung (0,00 Sek.)

mysql> GLOBALE TRANSAKTIONSISOLIERSTUFE AUF WIEDERHOLBARES LESEN FESTLEGEN;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle @@global.tx_isolation;
+--------------------------+
| @@global.tx_isolation |
+--------------------------+
| WIEDERHOLBARES LESEN |
+--------------------------+
1 Zeile im Satz, 1 Warnung (0,00 Sek.)

Sie können auch den Befehl set tx_isolation verwenden, um die Transaktionsisolationsstufe der aktuellen Sitzung direkt zu ändern. Die SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt:

mysql> setze tx_isolation='READ-COMMITTED';
Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.)

mysql> wähle @@session.tx_isolation;
+------------------------+
| @@session.tx_isolation |
+------------------------+
| GELESEN-ENGAGIERT |
+------------------------+
1 Zeile im Satz, 1 Warnung (0,00 Sek.)

Wissenspunkte-Ergänzung

Flussdiagramm zum Lesen und Commit der MySQL-Transaktionsisolationsebene

Oben finden Sie den detaillierten Inhalt des Beispiels zum Anzeigen und Ändern der Transaktionsisolationsstufe von MySQL. Weitere Informationen zum Anzeigen und Ändern der Transaktionsisolationsstufe von MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Lese-Commits der MySQL-Transaktionsisolationsebene
  • Detaillierte Erläuterung der vier Transaktionsisolationsebenen in MySQL
  • Detaillierte Erklärung und Vergleich der vier Transaktionsisolationsebenen in MySQL
  • Detaillierte Analyse der MySQL-Transaktionsisolierung und ihrer Auswirkungen auf die Leistung
  • Tutorial zur Beziehung zwischen Innodb-Transaktionsisolationsebene und Sperre in MySQL
  • Einführung in die Transaktionsisolationsebene von MySQL-Datenbanken (Transaction Isolation Level)
  • Ausführliche Erklärung des Sperrmechanismus in MySQL InnoDB
  • Analyse des MySQL-Sperrmechanismus und der Verwendung
  • Tiefgreifendes Verständnis der Probleme mit der Transaktionsisolationsebene und dem Sperrmechanismus von MySQL

<<:  Implementierung der Bereitstellung eines privaten Docker-Warehouse-Registrars

>>:  Die Reihenfolge der Ereignisausführung in der Knotenereignisschleife

Artikel empfehlen

Detaillierte Erklärung der CSS-Textdekoration Textdekoration & Texthervorhebung

In CSS ist Text eines der häufigsten Dinge, mit d...

Browserübergreifender lokaler Speicher Ⅰ

Originaltext: http://www.planabc.net/2008/08/05/u...

Lösung für unvollständige Textanzeige im El-Tree

Inhaltsverzeichnis Methode 1: Der einfachste Weg,...

Front-End-Statusverwaltung (Teil 1)

Inhaltsverzeichnis 1. Was ist Front-End-Statusver...

So konfigurieren Sie zwei oder mehr Sites mit dem Apache-Webserver

So hosten Sie zwei oder mehr Sites auf dem belieb...

dh Filtersammlung

Der IE hat uns in der frühen Entwicklungsphase Ko...

JS implementiert Layoutkonvertierung in Animation

Beim Schreiben von Animationen mit JS wird häufig...

Die entsprechenden Attribute und Verwendung von XHTML-Tags in CSS

Als ich anfing, Webseiten mit XHTML CSS zu entwer...

Detaillierte Erklärung, wie zwei Node.js-Prozesse kommunizieren

Inhaltsverzeichnis Vorwort Kommunikation zwischen...