8

更新:问题现已修复


我想执行一个执行时间超过 99,999 秒的查询(例如SELECT SLEEP(150000);)。要更改 MySQL Workbench 中的超时,我们必须转到Edit → Preferences → SQL Editor → DBMS connection read time out (in seconds)。但是,该DBMS connection read time out字段最多只能接受 5 个数字,将字段设置为 0 相当于默认参数(600 秒)。如果查询花费的时间超过超时,我会收到错误消息:Error Code: 2013. Lost connection to MySQL server during query

因此我的问题是:是否可以将此限制增加到超过 99,999 秒?我使用带有 MySQL Workbench 5.2.47 CE 的 Windows 7 64 位 Ultimate。

DBMS connection read time out领域 :在此处输入图像描述

超时问题(0相当于默认参数(600秒)): 在此处输入图像描述

4

3 回答 3

5

可能没有人认为您需要如此高的超时时间,因此您仅限于当前可设置的内容。但是在http://bugs.mysql.com上打开一个功能请求,建议让 0 完全禁用超时或允许更大的值。

于 2013-06-03T16:39:18.403 回答
1

好吧,在欧洲,我们认为逗号是小数分隔符。你真的是指 100k 秒吗?我在您的评论中看到您正在处理 50 GB。即便如此,如果您需要超过一个小时,您就错过了 Indeces。您必须知道它们不会在单个查询中正确重建,因此如果您加入大量插入,您将获得扫描行的笛卡尔积 - 换句话说,您的查询可能会运行数周甚至数月。

解决方案:

  1. 填写基本数据,此处不使用连接。
  2. 更改表以设置索引。
  3. ANALYZE <tablename>
  4. 做其他一切。

如果您觉得在执行该过程时遇到问题,请在您的查询前添加EXPLAIN关键字并发布结果。

(我有一个 cronjob 每 30 分钟导入大约 80GB - MySQL 肯定可以处理这个。)

于 2013-06-01T22:45:54.110 回答
1

此问题现已在 MySQL Workbench 6.0.3 (2013-07-09) 中解决:请参阅错误报告更改日志

于 2015-11-03T03:20:16.853 回答