ast*_*asr 9 mysql query-timeout connectivity
我们遇到了一个问题,即通过 MySQL 工作台运行的只读查询从用户的 UI 角度超时,并在服务器上继续运行(显然消耗越来越多的资源),直到我们出现中断。
问题
Rol*_*DBA 11
您需要查看超时的默认值:
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)
Run Code Online (Sandbox Code Playgroud)
通常,我会观察几个超时变量。如果您从 MySQL Workbench、mysql 客户端或应用程序服务器上的 PHP 应用程序远程使用 MySQL,这是非常必要的,该应用程序服务器与数据库服务器上的 MySQL 联系。
以下是 MySQL 文档中所说的这些设置之一:
请确保将这些超时设置得足够高以适应可能运行很长时间的查询,其中可能包括:
UPDATEsDELETEsENABLE KEYS 在大型 MyISAM 上要处理在您失去联系后继续运行的查询,您必须针对长时间运行的查询的进程 ID运行KILL。即使使用 KILL 命令,您也必须等待任何处于磁盘密集型步骤中间或正在进行内部互斥锁的查询。