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

js, um einen einfachen Front-End-Paging-Effekt zu erzielen

Einige Projekte haben ein relativ einfaches Gesch...

Lösung für zu große Mysql-Binlog-Protokolldateien

Inhaltsverzeichnis 1. Verwandte Binlog-Konfigurat...

Next.js – Erste Schritte-Tutorial

Inhaltsverzeichnis Einführung Erstellen eines Nex...

WebStorm kann die Lösung der Vue3-kombinierten API nicht korrekt identifizieren

1 Problembeschreibung Die kombinierte API von Vue...

10 Fähigkeiten, die Frontend-Entwickler millionenschwer machen

Die Fähigkeiten, die Front-End-Entwickler beherrs...

JS versteht die Zeitzonen GMT und UTC genau

Inhaltsverzeichnis Vorwort 1. GMT Was ist GMT Ges...

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick Vorgänge, die auf einer Datenbank ausge...

Implementierung einer Warenkorbfunktion basierend auf Vuex

In diesem Artikelbeispiel wird der spezifische Co...

HTML 5.1 lernen: 14 neue Features und Anwendungsbeispiele

Vorwort Wie wir alle wissen, gehört HTML5 dem Wor...

Beschreibung der Nginx-Zugriffsprotokoll- und Fehlerprotokollparameter

veranschaulichen: Es gibt zwei Haupttypen von Ngi...

Verwenden Sie CSS, um spezielle Logos oder Grafiken zu implementieren

1. Einleitung Da Bilder viel Platz beanspruchen u...

So löschen Sie den MySQL 8.0-Dienst vollständig unter Linux

Bevor Sie diesen Artikel lesen, sollten Sie sich ...