KILL [接続 | クエリ] processlist_id MySQL では、各接続は個別のスレッドとして実行されます。ステートメントの実行を終了するには、KILL processlist_id ステートメントを使用できます。 KILL ではオプションの CONNECTION または QUERY 修飾子を使用できます。
すべてのIDを表示するにはshow processlistを使用します キルコマンドの使用アプリケーションが SQL を実行し、更新のためのロック選択または数が多すぎるために SQL の実行がデータベース内で停止した場合、SQL をキャンセルするにはどうすればよいでしょうか。kill コマンドを使用して、mysql スレッドを停止するか、SQL 実行をキャンセルすることができます。kill threadId コマンドを実行する必要がありますか、それとも kill query theadId コマンドを実行する必要がありますか。 kill と kill query の最大の違いは、接続上で実行されたすべての SQL をキャンセルするかどうか、つまりスレッドを閉じるかどうかです。スレッドが閉じられる場合、JDBC ではステートメントを閉じることに相当します。 -- データベースは acctno=13 のレコードをロックし、次の更新ステートメントを実行します: update test set acctname ='12' where acctno=13 SQLを実行しているスレッドIDを表示するには、プロセスリストを表示します。 SQL 実行をキャンセルしたい場合は、kill query 407 コマンドを使用して SQL 実行をキャンセルできます。実行後、407 スレッドは消えません。接続上で SQL 実行がある場合は実行が継続されますが、kill 407 を使用すると 407 スレッドは消えます。ご利用の際は両者の違いにご注意ください。 show processlistでスレッドIDを表示するだけでなく、プログラム的な方法でthreadIdを取得することもできます。 接続 connection = getConnection(); ((MysqlConnection)接続).getSession().getThreadId(); ステートメントキャンセルメソッドJDBCプログラミングを使用してデータベースを操作する場合、Statementオブジェクトのcancelメソッドを使用してキャンセルすることもできます。MySQLドライバは、内部的にKill query threadId命令も送信します。MySQLドライバのcancelメソッドのソースコード パブリック void cancel() は SQLException をスローします { 試す { if (this.query.getStatementExecuting().get()) { if (!this.isClosed && this.connection != null) { JdbcConnection の cancelConn = null; オブジェクト cancelStmt = null; 試す { ホスト情報 ホスト情報 = this.session.getHostInfo(); 文字列データベース = hostInfo.getDatabase(); 文字列ユーザー = StringUtils.isNullOrEmpty(hostInfo.getUser()) ? "" : hostInfo.getUser(); 文字列パスワード = StringUtils.isNullOrEmpty(hostInfo.getPassword()) ? "" : hostInfo.getPassword(); NativeSession の新しいセッション = 新しい NativeSession (this.session.getHostInfo()、this.session.getPropertySet()); newSession.connect(hostInfo、ユーザー、パスワード、データベース、30000、新しいTransactionEventHandler() { パブリックボイドトランザクション完了() { } パブリックボイドトランザクション開始() { } }); // ドライバーは KILL QUERY + threadId コマンドを使用してキャンセルします。newSession.sendCommand((new NativeMessageBuilder()).buildComQuery(newSession.getSharedSendPacket(), "KILL QUERY " + this.session.getThreadId()), false, 0); this.setCancelStatus(CancelStatus.CANCELED_BY_USER); } キャッチ (IOException var13) { SQLExceptionsMapping.translateException(var13、this.exceptionInterceptor) をスローします。 ついに キャンセルStmt != null の場合 { ((ステートメント)cancelStmt).close(); } キャンセルコン!= nullの場合{ ((JdbcConnection)cancelConn).close(); } } } } } キャッチ (CJException var15) { SQLExceptionsMapping.translateException(var15, this.getExceptionInterceptor()) をスローします。 } } クライアントツールの実行クライアント ツールは、SQL を実行した後に実行をキャンセルします。一部のツールは kill コマンドを送信し、一部のツールは kill クエリ命令を送信します。パケット キャプチャ ツールを使用して、Navicat ツールが送信する命令を確認できます。推奨されるパケット キャプチャ ツールは、非常に強力な Wireshark です。 これは kill コマンドであり、対応するスレッド ID は 407 です。一部のツールでは、kill クエリ コマンドも送信されます。 上記はMySQL killコマンド使用ガイドの詳細な内容です。MySQL killコマンドの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: はじめに: HTML の基本的なタグと属性の簡単な紹介
>>: Zabbix ベースの Jenkins プロセス監視の詳細な説明
目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...
1. 何ですかreactアプリケーションでは、イベント名はキャメルケース形式で記述されます。たとえ...
効果: まず5つのVueインターフェースを作成する1.home.vueページ <テンプレート&...
目次1. 基本理論1.1 取引1.2 分散トランザクション2. 分散トランザクションソリューション2...
まずは栗を見てみましょう EXPLAIN select * from employees where...
1. SSHリモート管理SSH の定義SSH (Secure Shell) は、主にキャラクタ イン...
元記事:究極の IE6 チートシート: 25 以上の Internet Explorer 6 のバグ...
序文PIPE、パイプラインと翻訳されます。 Angular パイプは、HTML コンポーネントで宣言...
テーマ今日は、CSS3 を使用して円形スクロール プログレス バー アニメーションを作成する方法を説...
1. まずパゴダを設置するインストール要件: Python バージョン: 2.6/2.7 (Pago...
詳細には立ち入らずに、コードに直接進みましょう。一緒にコミュニケーションを取り、学びましょう。月ごと...
平日はニュースに注目して、テンセントをよく閲覧しています。しかし、コメントへの返信はほとんど見られま...
テーブルを削除することはあまり一般的ではありませんが、特に外部キーの関連付けがあるテーブルの場合は、...
1. 水平中央公開コード: html: <div class="parent&quo...
目次1. クロージャを使用する2. ES6クラスを使用する3. ES2020提案を使用する4. We...