Как быстро пофиксить зависающий MySQL

Торможение и зависание MySQL обычно является следствием выполнения неоптимизированных запросов создаваемых программным кодом сайта к серверу баз данных.

При появлении признаков некорректной работы MySQL — торможении и зависании — проверяем выполняемые запросы

Подключаемся к MySQL

mysql -u root -p

 

Далее в консоли:

mysql>show processlist;

 

Если есть явно большие повторяющиеся запросы, прекращаем их выполнение при помощи kill с указанием идентификатора процесс MySQL (предварительно возвращаемся в консоль сервера)

 

Дефрагментация кэша MySQL и закрытие файловых дескрипторов

Если результата это не дало -делаем flash-tables, что позволяет закрыть все неиспользуемые файловые дескрипторы

mysqladmin flash-tables

 

Затем дефрагментируем кэш

mysqladmin flush query cache

 

 

И перезапускаем сервер баз данных

/etc/init.d/mysql restart

 

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

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