Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、応答が返されない場合があります。この時点で、リソースを消費しているクエリ ステートメントを強制終了する必要があります。KILL コマンドの構文形式は次のとおりです。

KILL [接続 | クエリ] thread_id

mysqld への各接続は、個別のスレッドで実行されます。SHOW PROCESSLIST ステートメントを使用して実行中のスレッドを確認し、KILL thread_id ステートメントを使用してスレッドを強制終了できます。

KILL ではオプションで CONNECTION または QUERY 修飾子を使用できます。KILL CONNECTION は修飾子なしの KILL と同じです。つまり、指定された thread_id に関連付けられた接続を終了します。 KILL QUERY は、接続で現在実行中のステートメントを終了しますが、接続はそのまま残ります。

PROCESS 権限がある場合は、すべてのスレッドを表示できます。スーパー管理者権限を持っている場合は、すべてのスレッドとステートメントを終了できます。それ以外の場合は、自分のスレッドとステートメントのみを表示および終了できます。また、mysqladmin processlist コマンドと mysqladmin kill コマンドを使用して、スレッドを調べたり強制終了したりすることもできます。

まず MySQL にログインし、show processlist; を使用して現在の MySQL 内の各スレッドのステータスを表示します。

mysql> プロセスリストを表示します。 
+------+------+----------------------+--------+---------+----------+--------------------  
| ID | ユーザー | ホスト | db | コマンド | 時間 | 状態 | 情報 
+------+------+----------------------+--------+---------+----------+--------------------  
| 7028 | ルート | ucap-devgroup:53396 | プラットフォーム | スリープ | 19553 | | NULL  
| 8352 | ルート | ucap-devgroup:54794 | プラットフォーム | スリープ | 4245 | | NULL 
| 8353 | ルート | ucap-devgroup:54795 | プラットフォーム | スリープ | 3 | | NULL 
| 8358 | ルート | ucap-devgroup:62605 | プラットフォーム | クエリ | 4156 | 更新中 | t_shop セットを更新 |

上記は、現在実行中の SQL ステートメントのリストを表示し、最も多くのリソースを消費するステートメントに対応する ID を見つけます。

次に、kill コマンドを実行します。コマンドの形式は次のとおりです。

ID を強制終了します。 
- 例: 
8358人を殺す

ただ殺すだけ。

以下もご興味があるかもしれません:
  • mysql show processlistはmysqlクエリプロセスを表示します。
  • MySQLのkillがスレッドをkillできない理由
  • MYSQL でプロセスを表示および終了する方法

<<:  Linux環境でglogログライブラリを使用する方法

>>:  JavaScript で最も高速なループはどれですか?

推薦する

MyBatisインターセプターのページング機能を実装する方法

MyBatisインターセプターのページング機能を実装する方法序文:まず、実装原則についてお話しします...

type=fileファイル変更フォームの名前が正常にエコーされない問題を解決

easyui フレームワークのコードは次のとおりです。 css: .ファイルボックス{ フロート:...

MySql 8.0.11 のインストールと設定のチュートリアル

公式ウェブサイトアドレス: https://dev.mysql.com/downloads/mysq...

CSSセレクタを使用してラベルスタイルを設定するサンプルコード

CSS セレクターHTML タグにスタイルを設定すると、タグの属性を設定できます。 <div ...

Linux ファイルを分割するための split コマンドの詳細な説明

いくつかの簡単な Linux コマンドを使用すると、ストレージまたは電子メールの添付ファイルのサイズ...

vue-video-player でのブレークポイント再開の実装

最近のプロジェクトでは、ブレークポイントからビデオの再生を再開する機能を実装する必要がありました。こ...

Docker-compose インストール db2 データベース操作

db2 データベースをホストマシンに直接インストールするのは面倒で、ユーザーや権限を巻き込むのも不便...

MySQL 8.0.17 をインストールしてリモート アクセスを構成する方法

1. インストール前の準備データベースのバージョンを確認するコマンド: mysql --versio...

同じ日の最初の3つのデータを取得するためのMySQLタイムラインデータ

テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...

Dockerコンテナ内の設定ファイルの変更の実装

1. コンテナに入るdocker run [オプション] イメージ名 [起動コンテナに渡されるコマン...

MySql 学習 3 日目: データ テーブル間の接続とクエリの詳細

主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...

Ubuntuにopencvをインストールする正しい方法の詳細な説明

この記事ではUbuntuでC++インターフェースを使用してopencvをインストールする方法について...

MySQL 8.0.15 で MGR シングル マスターと複数スレーブを構成する方法

1. はじめにMySQL グループ レプリケーション (略して MGR) は文字通り MySQL グ...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

Centos7にGitLabサーバーをインストールして展開する方法

私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...