Код ошибки: 2013. Потеря соединения с сервером MySQL во время запроса 30.002 сек. - PullRequest
0 голосов
/ 02 января 2019

Есть много проблем с той же темой, что и у меня, но мой контент и проблема, кажется, отличаются. В своем рабочем месте я запускаю код

`select(msgid) from `table`.log where 
 id = 'example'  and  status = 'active'  and month(created_at) = 12 
 and year(created_at) = 2018 limit 0,10;`

Приведенный выше код работает нормально, но когда я запускаю код b

`select(msgid), count(msgid) from `table`.log where 
     id = 'example'  and  status = 'active'  and month(created_at) = 12 
     and year(created_at) = 2018 limit 0,10;`

я получаю ошибку

> Код ошибки: 2013. Потеря соединения с сервером MySQL во время запроса 30.002 сек

Почему это может происходить на моем рабочем месте?

PS: плохо знаком с верстаком и mysql

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Вы можете изменить время ожидания с:

Правка → Настройки → Редактор SQL → Время чтения соединения с СУБД (в секундах): 600

Изменено значение, превышающее текущее значение.

** UPDATE Вы также можете установить тайм-аут чтения:

SET @@local.net_read_timeout=360;
0 голосов
/ 02 января 2019

Вот скриншот настроек MySQL Workbench 8.0.13.Я поместил стрелки, указывающие, где вы должны выбрать «Редактор SQL», а затем - поле «Интервал ожидания чтения подключения к СУБД».

enter image description here

Я согласен с комментарием @SalmanA: вы должны оптимизировать свой запрос, чтобы он не был таким медленным.

В частности, вы должны использовать индексы, чтобы помочь запросу сузить строки отчета.Но вы не можете сделать это, когда используете такие функции, как month(created_at) и year(created_at).Предполагая, что у вас есть индекс для created_at, вам нужно поместить этот столбец отдельно в левую часть операторов сравнения:

... AND created_at >= '2018-12-01' AND created_at < '2019-01-01'

Лучшим индексом для этого запроса будет составной индекс:

ALTER TABLE log ADD INDEX (id, status, created_at, msg_id);
0 голосов
/ 02 января 2019

Вы должны попытаться увеличить время чтения соединения с СУБД.

Перейдите в «Редактирование рабочей среды» → «Настройки» → «Редактор SQL» → Тайм-аут соединения с СУБД: увеличьте это значение до 6000

...