Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


13.7.6.4 KILL 構文

KILL [CONNECTION | QUERY] processlist_id

mysqld への各接続は、個別のスレッドで実行されます。スレッドは、KILL processlist_id ステートメントで強制終了できます。

スレッドのプロセスリスト識別子は、INFORMATION_SCHEMA.PROCESSLIST テーブルの ID カラム、SHOW PROCESSLIST の出力の Id カラム、およびパフォーマンススキーマの threads テーブルの PROCESSLIST_ID カラムから特定できます。現在のスレッドの値は、CONNECTION_ID() 関数によって返されます。

KILL では、オプションの CONNECTION または QUERY 修飾子が許可されます。

  • KILL CONNECTION は、修飾子のない KILL と同じです。これは、指定された processlist_id に関連付けられた接続を終了します。

  • KILL QUERY は、接続が現在実行しているステートメントを終了しますが、その接続自体はそのままの状態で残します。

PROCESS 権限がある場合は、すべてのスレッドを表示できます。SUPER 権限がある場合は、すべてのスレッドとステートメントを強制終了できます。そうでない場合は、ユーザー独自のスレッドとステートメントのみを表示および強制終了できます。

mysqladmin processlist および mysqladmin kill コマンドを使用して、スレッドを検査および強制終了することもできます。

注記

組み込みサーバーはホストアプリケーションのスレッドの内部でしか実行されないため、組み込み MySQL Server ライブラリでは KILL を使用できません。独自の接続スレッドは作成されません。

KILL を使用すると、そのスレッドのスレッド固有の強制終了フラグが設定されます。強制終了フラグは次の一定の間隔でしかチェックされないため、ほとんどの場合、スレッドが終了するまでにある程度時間がかかることがあります。

  • SELECT 操作中、ORDER BY および GROUP BY ループでは、このフラグは行ブロックの読み取りのあとにチェックされます。強制終了フラグが設定されている場合、このステートメントは中止されます。

  • ALTER TABLE 操作中、強制終了フラグは、元のテーブルから各行ブロックが読み取られる前にチェックされます。強制終了フラグが設定されていた場合、このステートメントは中止され、一時テーブルが削除されます。

  • UPDATE または DELETE 操作中、強制終了フラグは、ブロックが読み取られるたび、および行が更新または削除されるたびにチェックされます。強制終了フラグが設定されている場合、このステートメントは中止されます。トランザクションを使用していない場合は、変更がロールバックされません。

  • GET_LOCK() は中止され、NULL を返します。

  • INSERT DELAYED スレッドは、メモリー内にあるすべての行をすばやくフラッシュ (挿入) してから終了します。

  • このスレッドがテーブルロックハンドラ内にある場合 (状態: Locked)、そのテーブルロックはすばやく中止されます。

  • このスレッドが書き込みコールでディスクの空き容量を待機している場合、その書き込みはディスク領域不足というエラーメッセージで中止されます。

警告

MyISAM テーブルに対する REPAIR TABLE または OPTIMIZE TABLE 操作を強制終了すると、テーブルが破損して使用できなくなります。このようなテーブルに対する読み取りまたは書き込みはすべて、そのテーブルをふたたび最適化または修復するまで失敗します (割り込みはなし)。


User Comments
Sign Up Login You must be logged in to post a comment.