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

Einführung des Code-Prüftools stylelint zum Erfahrungsaustausch

Inhaltsverzeichnis Vorwort Text 1. Installieren S...

Detaillierte Erklärung der JS-Array-Methoden

Inhaltsverzeichnis 1. Das ursprüngliche Array wir...

JavaScript zum Erreichen eines Mouse-Tailing-Effekts

Mauseffekte erfordern die Verwendung von setTimeo...

Tutorial zur Installation des Tomcat-Servers unter Windows

1 Herunterladen und vorbereiten Zuerst müssen wir...

Zusammenfassung zum Ändern des Root-Passworts in MySQL 5.7 und MySQL 8.0

MySQL 5.7-Version: Methode 1: Verwenden Sie den B...

jQuery zum Erzielen eines gleitenden Treppeneffekts

In diesem Artikel wird der spezifische Code von j...

Spielen Sie mit der Connect-Funktion mit Timeout in Linux

Im vorherigen Artikel haben wir mit Timeouts unte...

CSS-Schreibformat, detaillierte Erklärung der Grundstruktur einer mobilen Seite

1. CSS-Schreibformat 1. Inline-Stile Sie können C...

HTML-Auszeichnungssprache - Tabellen-Tag

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Teilen Sie 20 JavaScript-Einzeilencodes

Inhaltsverzeichnis 1. Holen Sie sich den Wert des...

Einige Vorschläge zur Gewährleistung der MySQL-Datensicherheit

Daten sind das wichtigste Kapital eines Unternehm...

Kompatibilitätsprobleme mit CSS3-Farbverlaufshintergründen

Wenn wir eine Hintergrundfarbe mit Farbverlauf er...