Эффективность настройки MySQL может очень сильно влиять на производительность работы сайта на WordPress. Поскольку WordPress использует InnoDB таблицы, нам необходимо настроить MySQL сервер под оптимальную работу с ними. Откройте файл my.cnf (обычно /etc/my.cnf) и измените следующие настройки. В нашем случае конфигурируем MySQL для сервера с 1 ядром и 512Мб оперативной памяти, на котором работает еще и PHP и MySQL.
1 |
max_connections = 64 |
Максимальное количество соединений следует подбирать под нагрузку и количество ядер, но лучше начать с 64.
1 |
innodb_buffer_pool_size = 256M |
Этот параметр нужно установить в 70…80% доступной оперативной памяти. В нашем случае часть памяти будет использована под PHP и Nginx.
1 |
innodb_flush_log_at_trx_commit = 2 |
Этот параметр позволяет оптимизировать работу с записью InnoDB таблиц на диск. Вместо дорогих операций сброса лога на диск после каждой транзакции, MySQL будет сбрасывать лог в операционный кеш.
1 |
thread_cache_size = 16 |
Количество потоков (тредов), которые будут храниться в кеше. Нужно следить за ростом создаваемых потоков.
1 2 |
query_cache_size = 32M query_cache_limit = 1M |
Общий размер кеша и его лимит для каждого запроса. Также стоит увеличивать по мере роста нагрузки и данных. Осторожно. Слишком большие значения могут привести к потере производительности.
Более детальная и тонкая настройка Mysql под нагрузки. Также посмотрите видео по тюнингу MySQL для WordPress от Ильи Полихронова.