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

Detaillierte Erklärung der Rahmen- und Regelattribute der Tabelle in HTML

Die Rahmen- und Regelattribute des Tabellentags k...

Vue implementiert Multi-Grid-Eingabefeld auf mobilem Endgerät

Vor Kurzem hat das Unternehmen die Anforderung ge...

Detaillierte Erklärung des JSON-Dateischreibformats

Inhaltsverzeichnis Was ist JSON Warum diese Techn...

So umgehen Sie unbekannte Feldnamen in MySQL

Vorwort Dieser Artikel stellt die fünfte Frage vo...

So verwenden Sie Cursor-Trigger in MySQL

Cursor Die von der Auswahlabfrage zurückgegebenen...

Vue verwendet OSS zum Hochladen von Bildern oder Anhängen

Verwenden Sie OSS, um Bilder oder Anhänge in ein ...

Detaillierte Erläuterung des Fehlerproblems der Case-When-Anweisung

Vorwort In der MySQL-Datenbank verwenden wir manc...

Zeitleistenimplementierungsmethode basierend auf ccs3

In Webprojekten nutzen wir häufig die Zeitleisten...

Was die Website am meisten braucht, ist eine Verbesserung der Erfahrung der Zielgruppe

„Der große Fluss fließt nach Osten, die Wellen sp...