Mysql verwendet den Kill-Befehl, um das Deadlock-Problem zu lösen (eine bestimmte SQL-Anweisung, die ausgeführt wird, abzubrechen).

Mysql verwendet den Kill-Befehl, um das Deadlock-Problem zu lösen (eine bestimmte SQL-Anweisung, die ausgeführt wird, abzubrechen).

Bei der Verwendung von MySQL zum Ausführen bestimmter Anweisungen kann es aufgrund der großen Datenmenge zu einem Deadlock kommen und es wird keine Antwort gegeben. Zu diesem Zeitpunkt müssen Sie eine Abfrageanweisung beenden, die Ressourcen verbraucht. Das Syntaxformat des KILL-Befehls lautet wie folgt:

KILL [VERBINDUNG | ABFRAGE] Thread-ID

Jede Verbindung zu mysqld läuft in einem separaten Thread. Mit der Anweisung SHOW PROCESSLIST können Sie sehen, welche Threads laufen, und mit der Anweisung KILL thread_id können Sie einen Thread beenden.

KILL erlaubt optionale CONNECTION- oder QUERY-Modifikatoren: KILL CONNECTION ist dasselbe wie KILL ohne Modifikatoren: Es beendet die mit der angegebenen Thread-ID verknüpfte Verbindung. KILL QUERY beendet die aktuell auf der Verbindung ausgeführte Anweisung, lässt die Verbindung jedoch intakt.

Wenn Sie über die Berechtigung PROCESS verfügen, können Sie alle Threads anzeigen. Wenn Sie über Superadministratorrechte verfügen, können Sie alle Threads und Anweisungen beenden. Andernfalls können Sie nur Ihre eigenen Threads und Anweisungen anzeigen und beenden. Sie können auch die Befehle mysqladmin processlist und mysqladmin kill verwenden, um Threads zu untersuchen und zu beenden.

Melden Sie sich zuerst bei MySQL an und verwenden Sie dann „show processlist“, um den Status jedes Threads im aktuellen MySQL anzuzeigen.

mysql> Prozessliste anzeigen; 
+------+------+----------------------+----------------+---------+-----------+---------------+--------------------  
| ID | Benutzer | Host | db | Befehl | Zeit | Status | Info 
+------+------+----------------------+----------------+---------+-----------+---------------+--------------------  
| 7028 | root | ucap-devgroup:53396 | Plattform | Ruhezustand | 19553 | | NULL  
| 8352 | root | ucap-devgroup:54794 | Plattform | Ruhezustand | 4245 | | NULL 
| 8353 | root | ucap-devgroup:54795 | Plattform | Ruhezustand | 3 | | NULL 
| 8358 | root | ucap-devgroup:62605 | Plattform | Abfrage | 4156 | Aktualisierung | t_shop-Set aktualisieren |

Oben wird die Liste der aktuell ausgeführten SQL-Anweisungen angezeigt und die ID der Anweisung ermittelt, die die meisten Ressourcen verbraucht.

Führen Sie dann den Kill-Befehl aus. Das Befehlsformat ist wie folgt:

ID töten; 
- Beispiel: 
töten 8358

Töte es einfach.

Das könnte Sie auch interessieren:
  • mysql show processlist zeigt den MySQL-Abfrageprozess an
  • Gründe, warum MySQL Kill Threads nicht beenden kann
  • So zeigen Sie Prozesse in MySQL an und beenden sie

<<:  So verwenden Sie die Glog-Protokollbibliothek in einer Linux-Umgebung

>>:  Welche Schleife ist in JavaScript die schnellste?

Artikel empfehlen

20 JavaScript-Tipps zur Verbesserung der Entwicklungseffizienz

Inhaltsverzeichnis 1. Arrays deklarieren und init...

Beispiele für MySQL-Batch-Hinzufügungs- und Speichermethoden

Beim Anmelden am Stresstest sind viele verschiede...

Eine Codezeile zeigt Ihnen, wie Sie Linux-Prozesse verbergen

Freunde fragen mich immer, wie man Linux-Prozesse...

Detaillierte Untersuchung des MySQL-Verbundindex

Ein zusammengesetzter Index (auch gemeinsamer Ind...

Zwei Verwendungen von iFrame-Tags in HTML

Ich habe kürzlich an einem Projekt gearbeitet – B...

Beispielcode zur Implementierung des Dunkelmodus mit CSS-Variablen

Vor kurzem wurde WeChat von Apple gezwungen, eine...

Vue + Element dynamische Mehrfachheader und dynamische Slots

Inhaltsverzeichnis 1. Nachfrage 2. Wirkung 3. All...