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
Mit reinem CSS3 lässt sich ein Schmetterling mit ...
Netzwerk-Ports freigeben Tatsächlich gibt es in D...
Vorwort Wenn in einem relativ komplexen großen Sy...
So implementieren Sie Textsymbole über CSS /*Symb...
Problembeschreibung: In letzter Zeit besteht die ...
Erstellen Sie ein einfaches Spring Boot-Webprojek...
Inhaltsverzeichnis Merkmale Erhaltungsstrategie B...
Docker-Daemon-Socket Der Docker-Daemon kann über ...
In tatsächlichen Projekten gibt es Beziehungen zw...
Eine kurze Analyse von rem Zunächst einmal ist re...
Inhaltsverzeichnis 1. Einleitung 2. Umweltvorbere...
Zusammenfassung: Dieser Artikel zeigt, wie Avro-D...
Inhaltsverzeichnis 1. Einführung in Label-Anweisu...
In diesem Artikel wird der spezifische Code von V...
MySQL ist ein relationales Datenbankverwaltungssy...