回答:
タイムアウトに設定されているデフォルト値を確認する必要があります。
mysql> show variables like '%timeout';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 60 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 60 |
+----------------------------+-------+
10 rows in set (0.00 sec)
通常、私はいくつかのタイムアウト変数を監視します。これは、DBサーバー上のMySQLに接続するアプリケーションサーバー上のMySQL Workbench、mysqlクライアント、またはPHPアプリからMySQLをリモートで使用する場合に非常に不可欠です。
MySQLのドキュメントでは、これらの設定の1つを以下に示しています。
これらのタイムアウトが非常に長い時間実行される可能性があるクエリに対応できる十分な高さに設定されていることを確認してください。
UPDATEs
DELETEs
ENABLE KEYS
大きなMyISAM触れなくなった後も実行を続けるクエリを処理するには、長時間実行されているクエリのプロセスIDに対してKILLを実行する必要があります。KILLコマンドを使用した場合でも、ディスクを集中的に使用するステップの途中、または内部mutexが進行中のクエリを待つ必要があります。