Wenn bei der tatsächlichen Projektentwicklung die Datenbank stark unter Druck steht, z. B. durch eine große Anzahl von Abfragen oder Einfügungen, insbesondere Multithread-Einfügungen, können wir einige der langsam ausgeführten SQLs beenden. Ein häufig verwendeter Befehl ist show processlist 1. Was ist die Prozessliste anzeigen Prozessliste anzeigen: Wenn wir die offizielle Website von MySQL überprüfen, können wir feststellen, dass hauptsächlich abgefragt wird, welche Threads in der Datenbank ausgeführt werden. Wir können die langsameren Threads (Threads mit längeren Zeitwerten) beenden. Darüber hinaus ändern sich die von „show full processlist“ zurückgegebenen Ergebnisse in Echtzeit. 2. So verwenden Sie die Show Processlist Es gibt drei Möglichkeiten, „show processlist“ auszuführen: Befehlszeile, SQL-Anweisung, Navicat-Client usw. 1) Befehlszeile: SHOW FULL PROCESSLIST\G Die Ausführungsergebnisse sind wie folgt: mysql> VOLLSTÄNDIGE PROZESSLISTE ANZEIGEN\G *************************** 1. Reihe *************************** ID: 1 Benutzer: Systembenutzer Gastgeber: db: NULL Befehl: Verbinden Zeit: 1030455 Status: Wartet darauf, dass der Master ein Ereignis sendet Info: NULL *************************** 2. Reihe *************************** ID: 2 Benutzer: Systembenutzer Gastgeber: db: NULL Befehl: Verbinden Zeit: 1004 Status: Hat alle Relay-Logs gelesen; wartet auf den Slave E/A-Thread zum Aktualisieren Info: NULL *************************** 3. Reihe *************************** Artikelnummer: 3112 Benutzer: Replikator Gastgeber: artemis:2204 db: NULL Befehl: Binlog Dump Zeit: 2144 Status: Hat das gesamte Binärprotokoll an den Slave gesendet; wartet auf die Aktualisierung des Binärprotokolls Info: NULL *************************** 4. Reihe *************************** Artikelnummer: 3113 Benutzer: Replikator Gastgeber: iconnect2:45781 db: NULL Befehl: Binlog Dump Zeit: 2086 Status: Hat das gesamte Binärprotokoll an den Slave gesendet; wartet auf die Aktualisierung des Binärprotokolls Info: NULL *************************** 5. Reihe *************************** Artikelnummer: 3123 Benutzer: stefan Host: localhost db: apollon Befehl: Abfrage Zeit: 0 Status: NULL Info: VOLLSTÄNDIGE PROZESSLISTE ANZEIGEN Zeilen im Set (0,00 Sek.) 2) Sie können die relevante Informationstabelle in der Datenbank über SQL-Anweisungen abfragen Wählen Sie ID, Datenbank, Benutzer, Host, Befehl, Zeit, Status und Informationen aus information_schema.processlist aus, sortiert nach Zeit absteigend 3) Sie können es mit dem Navicat-Tool anzeigen. Die folgende Abbildung ist ein Screenshot der Abfrage mit Navicat. 3. So interpretieren Sie die Show-Prozessliste Nachfolgend finden Sie eine Interpretation der mit diesem Befehl erzielten Ergebnisse. ID: Die eindeutige Kennung des Threads, der mit dem MySQL-Server verbunden ist. Sie können den Thread beenden, um die Verbindung zu beenden. Benutzer: Der Benutzer des aktuellen Threads, der eine Verbindung zur Datenbank herstellt Host: Zeigt an, von welcher IP und welchem Port diese Anweisung gesendet wird. Kann verwendet werden, um den Benutzer aufzuspüren, der die problematische Aussage gemacht hat db: die Datenbank, mit der der Thread verbunden ist, oder null, wenn keine vorhanden ist Befehl: Zeigt den von der aktuellen Verbindung ausgeführten Befehl an, normalerweise „sleep“, „Query“ oder „Connect“. Zeit: Die Zeit in Sekunden, die sich der Thread im aktuellen Status befindet Status: Zeigt den Status der SQL-Anweisung unter Verwendung der aktuellen Verbindung an. Dies ist eine sehr wichtige Spalte. Alle Status werden später beschrieben. Bitte beachten Sie, dass der Status nur ein bestimmter Status bei der Ausführung einer Anweisung ist. Beispielsweise muss eine SQL-Anweisung, wie z. B. eine Abfrage, möglicherweise die Zustände „In temporäre Tabelle kopieren“, „Ergebnis sortieren“ und „Daten senden“ durchlaufen, bevor sie abgeschlossen werden kann. Info: Die vom Thread ausgeführte SQL-Anweisung oder null, wenn keine Anweisung ausgeführt wird. Mit dieser Anweisung können vom Client gesendete oder intern ausgeführte Anweisungen ausgeführt werden. 4. So verarbeiten Sie die Ergebnisse der Show-Prozessliste In den obigen Schritten können wir die Ausführungszeit jedes Threads und andere Informationen überprüfen. Daher können wir Threads mit längerer Ausführungszeit direkt beenden, indem wir die Kill-ID-Nummer direkt ausführen. Wenn Sie die Zeit länger als 5 Minuten überprüfen möchten, können Sie den folgenden SQL-Befehl einfügen und ausführen select concat('kill ', id, ';') aus information_schema.processlist, wobei command != 'Sleep' und Zeit > 5*60, sortiert nach Zeit absteigend Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: Eine kurze Erläuterung der $notify-Punkte des Elements
Windows Server 2012 und Windows Server 2008 unter...
Hier habe ich hauptsächlich einige häufig verwend...
JBoss verwendet Tomcat als Webcontainer. Die Konf...
Überblick In Zabbix Version 5.0 und höher wurde e...
Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL 8.0...
Bisher wurden die von uns verwendeten Images alle...
Der Erste: Verwenden der CSS-Positionseigenschaft...
Der spezifische Code lautet wie folgt: <div id...
Manchmal müssen wir einige Befehle auf einem Remo...
Nach der MySQL-Datenbankoptimierung kann nicht nu...
Stammverzeichnis und Indexdatei Die Root-Direktiv...
Inhaltsverzeichnis Vorwort 1. Hintergrund 2. Simu...
Inhaltsverzeichnis 1. So funktioniert das Bootstr...
Nginx (Engine x) ist ein leistungsstarker HTTP- u...
Code kopieren Der Code lautet wie folgt: <html...