Как я могу выполнить SQL-запросы, которые занимают более 99,999 секунд в MySQL Workbench?

ОБНОВЛЕНИЕ: проблема теперь исправлена ​​.


Я хотел бы выполнить запрос, который занимает более 99 999 секунд для выполнения (например, SELECT SLEEP(150000);). Чтобы изменить тайм-аут в MySQL Workbench, мы должны перейти в Edit → Preferences → SQL Editor → время ожидания подключения к СУБД (в секундах). Однако поле DBMS connection read time out принимает только до 5 цифр, а установка поля в 0 эквивалентна параметру по умолчанию (600 секунд). Если запрос занимает больше времени, чем таймаут, я получаю сообщение об ошибке: Error Code: 2013. Lost connection to MySQL server during query

Отсюда мой вопрос: можно ли увеличить этот предел до 99,999 секунд? Я использую 64-разрядную версию Windows 7 с MySQL Workbench 5.2.47 CE.

Поле DBMS connection read time out: enter image description here

Время ожидания (0 эквивалентно параметру по умолчанию (600 секунд)): enter image description here

4b9b3361

Вероятно, никто никогда не думал, что вам понадобится такой высокий тайм-аут, поэтому вы ограничены тем, что устанавливается в настоящее время. Но откройте запрос функции http://bugs.mysql.com, чтобы предложить либо иметь 0 полностью отключить таймаут, либо разрешить большие значения.

4
ответ дан 03 июня '13 в 19:39
источник

Хорошо, в Европе мы рассматриваем запятую десятичный разделитель. Вы действительно имели в виду 100 тыс. Секунд? Я вижу в ваших комментариях, что вы обрабатываете 50 ГБ. Тем не менее, если вам нужно больше часа, вы пропустили Indeces. Вы должны знать, что они не будут правильно перестроены в одном запросе, поэтому, если вы присоединитесь к массивной вставке, вы получите декартовое произведение строк, сканированных - другими словами, ваш запрос может случиться в течение недель или даже месяцев.

Решение:

1) Заполните основные данные, не используйте здесь соединения. 2) Изменить таблицу для установки индекса. 3) Запустите "ANALYZE" 4) Сделайте все остальное.

Если вы чувствуете, что у вас возникли проблемы после этой процедуры, добавьте свой запрос с ключевым словом EXPLAIN и опубликуйте результаты.

(У меня есть cronjob, импортирующий около 80 ГБ каждые 30 минут на месте - MySQL наверняка справится с этим.)

1
ответ дан 02 июня '13 в 1:45
источник