Торможение и зависание 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 очень сильно зависит от сервера, на котором он используется, в реальных проектах нужна тонкая настройка под существующие условия.