Процессы MySQL выполняются в потоках (thread) — поток создается каждый раз когда клиентом выполняется запрос к базе, такое поведение является стандартным и не причиняет никаких неудобств при сравнительно небольших нагрузках.
Однако, как только обращений клиентов становится очень много появляются проблемы с быстродействием и появляется нагрузка на сервер, создаваемая MySQL. Причиной является создание и удаление большого количества потоков.
Данное поведение можно оптимизировать подобрав значение параметра thread_cache_size для MySQL. Как и любые другие опции параметр задается в конфигурационном файле /etc/mysql/my.cnf
Если указать, что значение должно быть равно 64 — MySQL при старте создаст 64 потока и ему не потребуется создавать их при поступающих запросах, а также удалять.
Установка значения глобальной переменной thread_cache_size
В /etc/mysql/my.cnf добавляем следующую директиву:
thread_cache_size = 64
Затем перезапускаем сервер баз данных
/etc/init.d/mysql restart
Также значение может быть задано непосредственно в консоли сервера баз данных как глобальная переменная:
mysql -u root -p
SET GLOBAL thread_cache_size = 64
Посмотреть установленное (или существующее значение переменной) можно выполнив:
SHOW GLOBAL STATUS LIKE 'Threads_created';
На полученный результат и стоит ориентироваться при выборе необходимого значения рассмотренного параметра.