У меня есть выделенный сервер с 4 ГБ оперативной памяти и четырехъядерный процессор Xeon, обслуживающий сайт с 350 тысячами просмотров страниц в день с использованием сценария wordpress. Проблема в том, что mysql съедает много процессора, и в ходе расследования я обнаружил, что он обрабатывает 250 запросов в секунду. Это соответствует 60 запросам на загрузку страницы, что не может быть правильным. Кроме того, большинство страниц кэшируются с помощью W3 Total Cache. У меня есть несколько приложений, обращающихся к базе данных, но как мне узнать, какое из них вызывает частое использование запросов?
В MySQL есть оператор под названием «показать список процессов», чтобы показать вам выполняющиеся запросы на вашем сервере MySQL.
Для проблем с mysql настройте журнал медленных запросов и выполните профилирование с помощью mysqltuner.pl и праймер для настройки mysql. Это устраняет большинство проблем с mysql. Проанализируйте медленные очереди и проверьте, можете ли вы добавить дополнительные индексы.
Не забудьте использовать innodb в качестве движка и особенно переменную размера буферного пула innodb.
Почему бы не пойти с чем-то вроде WP супер кэш что значительно сократит количество запросов, поступающих на ваш сервер базы данных?
Включите журнал медленных запросов и установите переменную long_query_time. Это будет регистрировать все запросы, которые занимают больше времени, чем указанное время.
Затем используйте инструмент mysqldumpslow для анализа журнала медленных запросов.
Для получения дополнительной информации обратитесь к документации mysql.