KILL [VERBINDUNG | ABFRAGE] Prozesslisten-ID In MySQL wird jede Verbindung als separater Thread ausgeführt. Mit der Anweisung KILL processlist_id können Sie die Ausführung der Anweisung beenden. KILL erlaubt optionale CONNECTION- oder QUERY-Modifikatoren:
Verwenden Sie „show processlist“, um alle IDs anzuzeigen Verwendung des Kill-BefehlsWenn unsere Anwendung SQL ausführt und die Ausführung von SQL aufgrund einer Sperrauswahl für die Aktualisierung oder einer zu großen Zahl in der Datenbank hängen bleibt, was sollen wir tun, wenn wir SQL abbrechen möchten? Wir können den Befehl kill verwenden, um den MySQL-Thread zu stoppen oder die SQL-Ausführung abzubrechen. Sollten wir den Befehl kill threadId oder den Befehl kill query theadId ausführen? Der größte Unterschied zwischen Kill und Kill Query besteht darin, ob alle auf der Verbindung ausgeführten SQLs abgebrochen werden sollen, also ob der Thread geschlossen werden soll. Wenn der Thread geschlossen wird, entspricht dies dem Schließen der Anweisung in JDBC. -- Die Datenbank sperrt den Datensatz mit acctno=13 und führt die folgende Update-Anweisung aus: update test set acctname ='12' where acctno=13 Zeigen Sie die Prozessliste an, um die Thread-ID anzuzeigen, die SQL ausführt. Wenn Sie die SQL-Ausführung abbrechen möchten, können Sie den Befehl kill query 407 verwenden, um die SQL-Ausführung abzubrechen. Nach der Ausführung verschwindet der 407-Thread nicht. Wenn die Verbindung eine SQL-Ausführung durchführt, wird sie weiterhin ausgeführt; wenn Sie jedoch kill 407 verwenden, verschwindet der 407-Thread. Bitte beachten Sie bei der Verwendung den Unterschied zwischen beiden. Zusätzlich zur Anzeige der Thread-ID über die Anzeige der Prozessliste können Sie auch programmgesteuerte Methoden verwenden, um die Thread-ID abzurufen. Verbindung Verbindung = getConnection(); ((MysqlConnection)Verbindung).getSession().getThreadId(); AnweisungsabbruchmethodeWenn wir die Datenbank mit JDBC-Programmierung betreiben, können wir zum Abbrechen auch die Cancel-Methode des Statement-Objekts verwenden. Der MySQL-Treiber sendet auch intern die Kill-Query-ThreadId-Anweisung. Der Quellcode der Cancel-Methode des MySQL-Treibers öffentliche void cancel() wirft SQLException { versuchen { wenn (this.query.getStatementExecuting().get()) { wenn (!this.isClosed && this.connection != null) { JdbcConnection cancelConn = null; Objekt cancelStmt = null; versuchen { HostInfo hostInfo = this.session.getHostInfo(); Zeichenfolge Datenbank = hostInfo.getDatabase(); String-Benutzer = StringUtils.isNullOrEmpty(hostInfo.getUser()) ? "" : hostInfo.getUser(); String-Passwort = StringUtils.isNullOrEmpty(hostInfo.getPassword()) ? "" : hostInfo.getPassword(); NativeSession neueSession = neue NativeSession(this.session.getHostInfo(), this.session.getPropertySet()); newSession.connect(hostInfo, Benutzer, Passwort, Datenbank, 30000, neuer TransactionEventHandler() { public void Transaktion abgeschlossen () { } public void TransaktionBeginnen() { } }); //Der Treiber verwendet den Befehl KILL QUERY + threadId, um newSession.sendCommand((new NativeMessageBuilder()).buildComQuery(newSession.getSharedSendPacket(), "KILL QUERY " + this.session.getThreadId()), false, 0); abzubrechen. dies.setCancelStatus(CancelStatus.CANCELED_BY_USER); } Fang (IOException var13) { wirf SQLExceptionsMapping.translateException(var13, this.exceptionInterceptor); Endlich if (cancelStmt != null) { ((Anweisung)cancelStmt).close(); } wenn (cancelConn != null) { ((JdbcConnection)cancelConn).schließen(); } } } } } Fang (CJException var15) { wirf SQLExceptionsMapping.translateException(var15, this.getExceptionInterceptor()); } } Ausführung des ClienttoolsDas Client-Tool bricht die Ausführung nach der Ausführung von SQL ab. Einige Tools senden Kill-Befehle und andere senden Kill-Abfrageanweisungen. Sie können das Paketerfassungstool verwenden, um zu überprüfen, welche Anweisungen das Navicat-Tool sendet. Das empfohlene Paketerfassungstool ist Wireshark, das sehr leistungsstark ist. Es handelt sich um einen Kill-Befehl und die entsprechende Thread-ID ist 407. Einige Tools senden auch einen Kill-Query-Befehl. Oben finden Sie den detaillierten Inhalt der Gebrauchsanweisung für den MySQL-Kill-Befehl. Weitere Informationen zum MySQL-Kill-Befehl finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Erste Schritte: Eine kurze Einführung in die grundlegenden Tags und Attribute von HTML
>>: Detaillierte Erläuterung der Überwachung des Jenkins-Prozesses basierend auf Zabbix
Installationsumgebung: CAT /etc/os-release Zeigt ...
1.1 Einleitung Durch Aktivieren des Slow Query Lo...
Bild herunterladen Docker-Pull OpenJDK Erstellen ...
Dieser Artikel beschreibt die Linux-Systembefehle...
Verwenden von Cutecom für die serielle Kommunikat...
In diesem Artikelbeispiel wird der spezifische JS...
1. Entpacken Sie die Datei in das aktuelle Verzei...
Vorwort In vielen MySQL-Test-Szenarien müssen ein...
Inhaltsverzeichnis Überblick Code-Implementierung...
Installieren Sie Grafana. Die offizielle Website ...
Moores Gesetz gilt nicht mehr Seit der Übernahme ...
Installieren der erforderlichen Dateien Yum insta...
In diesem Artikel wird der spezifische Code des n...
Inhaltsverzeichnis 1. Einleitung 2. Lassen Sie un...
Vorwort Beim Sichern der Datenbank wird eine voll...