Mysql fragt die ausgeführten Transaktionen ab und wie auf Sperren gewartet werden soll

Mysql fragt die ausgeführten Transaktionen ab und wie auf Sperren gewartet werden soll

Verwenden Sie navicat zum Testen und Lernen:

Verwenden Sie zuerst set autocommit = 0; (brechen Sie Autocommit ab. Wenn dann die Commit- oder Rollback-Anweisung ausgeführt wird, wird die Transaktion festgeschrieben oder zurückgesetzt.)

Öffnen eines update

Abfrage der ausgeführten Transaktionen:

SELECT * FROM information_schema.INNODB_TRX 

Gemäß der Thread-ID dieser Transaktion ( trx_mysql_thread_id ):

In der obigen Abbildung können wir die entsprechenden mysql Threads sehen: einer ist 94362 (der zweite wartet auf die Sperre) und der andere ist 93847 (das erste Update wird ausgeführt, ohne die Transaktion festzuschreiben).

Sie können den MySQL-Befehl „ kill thread id“ verwenden, um den Thread zu beenden.

Wenn der Thread, der die Sperre hält, während dieser Zeit nicht beendet wird: Die zweite Aktualisierungsanweisung weist darauf hin, dass die Wartezeit für die Sperre abgelaufen ist

Sie können auch die MySQL-Datenbank abfragen:

Gesperrte Transaktionen anzeigen

Wählen Sie * aus Information_Schema.InnoDB_Locks;

Anzeigen von Transaktionen, die auf Sperren warten

Wählen Sie * aus Information_Schema.InnoDB_Lock_Waits;

Abfragen der in der MySQL-Datenbank vorhandenen Prozesse

[sql] einfache Kopie anzeigen

Wählen Sie * aus Informationsschema. `PROZESSLIST` (Prozessliste anzeigen;)

Konzept:

database , instance , session in MySQL.

Um eine Sitzung in MySQL herzustellen, stellen Sie keine Verbindung zu einer bestimmten Datenbank her, sondern stellen Sie eine Sitzung mit der Instanz her (dh wenn Sie eine Abfrage auf Navicat ausführen, können Sie mehrere Datenbanken entsprechend dem Port abfragen, und der Datenbankname + der Name der Datentabelle reichen für die Abfrage aus).

Auf einer physischen Maschine können mehrere instance erstellt und die Instanzen anhand port unterschieden werden.

Eine Instanz kann mehrere Datenbanken erstellen, das heißt, eine Sitzung kann mehrere Datenbanken auf einer Instanz betreiben.

Das JDBC-Protokoll stellt eine Verbindung zur Datenbank her: jdbc:mysql://localhost:3306/test Das JDBC-Protokoll stellt eine Verbindung zur Testdatenbank unter der lokalen Instanz mit Port 3306 her. Sie müssen den Datenbanknamen beim Abfragen der Datentabelle nicht hinzufügen.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene
  • So finden Sie Informationen zu nicht festgeschriebenen Transaktionen in MySQL
  • Detaillierte Erläuterung des Implementierungsprinzips von ACID-Transaktionen in MySQL
  • Erläuterung der MySQL-Transaktionsauswahl für die Aktualisierung und Datenkonsistenzverarbeitung
  • Beispiel für eine in Java implementierte MySQL-Transaktionsverarbeitungsoperation
  • Lösung für das Problem der gesperrten Transaktionsverarbeitung mit hoher Parallelität in PHP+MySQL
  • So starten Sie eine Transaktion in MySQL

<<:  Zusammenfassung der allgemeinen Docker-Befehle und Tipps

>>:  Das WeChat Mini-Programm nutzt Simultanübersetzung zur Implementierung der Spracherkennung

Artikel empfehlen

Anfänger lernen einige HTML-Tags (3)

Verwandte Artikel: Anfänger lernen einige HTML-Ta...

Schreiben Sie ein MySQL-Datensicherungsskript mithilfe der Shell

Ideen Eigentlich ist es ganz einfach Schreiben Si...

Detaillierte Erläuterung der Nginx-Strombegrenzungskonfiguration

Dieser Artikel erläutert anhand von Beispielen di...

Installieren Sie Docker für Windows unter Windows 10 Home Edition

0. Hintergrund Hardware: Xiaomi Notebook Air 13/I...

Neue Features in MySQL 8: Unsichtbare Indizes

Hintergrund Indizes sind ein zweischneidiges Schw...

Lösung für FEHLER 1366 bei der Eingabe von Chinesisch in MySQL

Beim Eingeben von Chinesisch in MySQL tritt der f...

CSS3 beschleunigt und verzögert Übergänge

1. Verwenden Sie die Geschwindigkeitskontrollfunk...

Implementierungsmethode für den React State-Zustand und Lebenszyklus

1. Methoden zur Implementierung von Komponenten:組...