

MySQLで「kill プロセスID」を実行しましたが、正常にプロセスが終了しません。

[code]

    mysql> SHOW FULL PROCESSLIST;
    +-----+-----------------+-----------------+------+---------+---------+------------------------+------------------------------------------------+
    | Id  | User            | Host            | db   | Command | Time    | State                  | Info                                           |
    +-----+-----------------+-----------------+------+---------+---------+------------------------+------------------------------------------------+
    |   4 | event_scheduler | localhost       | NULL | Daemon  | 1230134 | Waiting on empty queue | NULL                                           |
    |  29 | root            | localhost:56181 | umls | Killed  |  951492 | executing              | SELECT COUNT(*) as count FROM `UMLS`.`MRCONSO` |
    | 152 | root            | localhost       | NULL | Query   |       0 | starting               | SHOW FULL PROCESSLIST                          |
    +-----+-----------------+-----------------+------+---------+---------+------------------------+------------------------------------------------+
    3 rows in set (0.00 sec)
    
[/code]

しばらく待つしかないのでしょうか。  
対処法など教えていただけるとありがたいです。


CC BY-SA 4.0
2020-11-30T06:38:35.833
72289
2022-06-11T07:04:50.433
2020-11-30T07:49:43.590
3060
42935
question
mysql
kill プロセスIDが終了しません


MySQLのKillコマンドはプロセスを切るするというよりも、強制終了フラグを立てておいて実行中に強制終了フラグのありなしでプロセスを終了するしないの判定をしています。

強制終了フラグのチェックタイミングはどういったQueryを実行しているかによります。  
リファレンスも確認してみてください。

<https://dev.mysql.com/doc/refman/5.6/ja/kill.html>

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


CC BY-SA 4.0
2020-11-30T07:12:50.807
72290
2020-11-30T07:12:50.807
22665
72289
answer