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

0

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

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

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

'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

  • 2
    Почему ваш запрос такой медленный? Возможно, вы захотите сосредоточиться на том, чтобы сделать это быстрее.
Теги:
mysql-workbench

3 ответа

0

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

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

Изменил его на большее значение, чем ваше текущее.

** ОБНОВЛЕНИЕ вы можете установить тайм-аут чтения также:

SET @@local.net_read_timeout=360;
  • 0
    нет времени чтения соединения с СУБД (в секундах) для моего ... все, что у меня есть, это query editor object editor , "выполнение sql"
  • 0
    Какая у вас версия верстака? проверьте это и прокомментируйте здесь, и вы можете выполнить запрос, чтобы проверить мой обновленный ответ
0

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

Изображение 174551

Я согласен с комментарием @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

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

Перейдите в Workbench Edit → Preferences → SQL Editor → Время ожидания соединений с СУБД: увеличьте это до 6000

  • 0
    нет времени чтения соединения с СУБД (в секундах) для моего ... все, что у меня есть, это query editor object editor , "выполнение sql"
  • 0
    Вы можете отправить загрузить снимок экрана с меню, которое вы получаете. также, что находится внутри "sql выполнение"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню