Сервер Баз данных очень часто грузит весь сервер, из-за этого плохо работают сайты, которые находятся на данном сервере. MySQL создает нагрузку не только на оперативную память, но и на сам жесткий диск и процессор.
Начнем пожалуй с phpmyadmin. Данный сервис может дать совет по оптимизации MySQL. Для начала нужно зайти в phpmyadmin, можно рута или от любого пользователя БД, далее ищем вкладку «Состояние», потом «Советчик». Смотрим что нам предлагают изменить:
Проблема:
Значение "long_query_time” равно 10 секундам или более, выходит, что только медленные запросы, которые больше по времени за 10 секунд, будут записаны в журнал.
Рекомендации по устранению проблемы:
Нужно понизить значение параметра long_query_time.
Предлагается оставить параметр равным 1-5 секунд.
Если решили прислушаться к совету, то заходим в конфигурационный файл MySQL:
vi /etc/my.cnf
И добавляем в него строки
long_query_time = 3
log-slow-queries = /var/log/mysql/mysql-slow.log
После чего сохраните файл и закройте его. Перегрузите сервер MySQL
/etc/init.d/mysqld restart
Все готово.
Теперь давайте познакомимся с утилитой Mysqltuner. Данный скрипт — собирает и выводит анализ работы Mysql, также как и советчик скрипт напишет вам, что лучше сделать для оптимизации Mysql.
Устанавливаем mysqltuner:
yum -y install mysqltuner
Запуск скрипта:
mysqltuner --user root --pass rootpassword
Запуск может быть просто mysqltuner, зависит от того как была установлена утилита.
Смотрим отчет:
В графе Recommendations смотрим те параметры, которые нам советуют изменить.
Если же какого то параметра не найдете в конфигурационном файле my.cnf - не отчаивайтесь, просто допишите его в свободной строчке.
Заходим в /etc/my.cnf, делаем изменения.
/etc/init.d/mysqld restart
Готово. Теперь наш MySQL сервер оптимизирован.