Собрал список, который занимал у меня штук 30 открытых вкладок. Когда я понял, что сил по ним бегать нет, то решил собрать такой материал, в котором будут все необходимые команды для проверки работы базы данных Mysql и тестирования различных параметров. Теперь постараюсь всё это собрать воедино и сохранить. Кто читал предыдущую мою статью про настройки my.cnf тот уже видел, что я активно занимаюсь оптимизацией базы данных.
Содержание
Mysqltuner команды проверки и реагирования
Название конечно звучит странно, но в этой части статьи именно все команды для проверки работы Mysql с помощью mysqltuner и соответственно необходимые команды для того, чтобы устранить некоторые проблемы.
Что такое mysqltuner думаю обьяснять не надо, как и его задачу — проверку Mysql параметров. Зачастую кстати он выдаёт одинаковые рекомендации, но чтобы запустить его надо просто в командной строке набрать
# mysqltuner
Оптимизация всех баз данных
После этого начнется проверка параметров Mysql и появится вывод информации. Как правило в самом начале выходят данные о фрагментации баз данных, их необходимо оптимизировать. Для этого вводим в командную строку следующую команду:
Восстановление & Оптимизация
mysqlcheck -Aor -p
Только воcстановление
mysqlcheck -Ar -p
Только оптимизация
mysqlcheck -Ao -p
Описание аргументов:
-A – Проверить на ошибки все Mysql базы данных
-r – Отремонтировать все Mysql базы данных
-o – Оптимизировать все Mysql базы данных
-p – Для доступа к базе используется пароль
После этого начинается оптимизация баз данных, которые имеют не оптимизированные таблицы.
Вывод данных состояния MYSQL
Теперь следующий блок запросов, которые вводятся в Mysql для вывода данных о состоянии переменных
show status LIKE "Key%";
— выводит данные о состояние буфера ключей
show status LIKE "Opened_tables%";
— выводит данные об открытых таблицах
show status LIKE "Threads_running%"
— вывод данных исходя из параметров умножения количества threads на параметры sort_buffer
show status LIKE "Max_used_connections%";
— данные о максимальном количестве одновременных подключений к базе. Помогает настроить максимальное количество подключений.
SHOW STATUS LIKE 'Qcache%';
— выводит данные о работе кеша определенного query_cache_limit и query_cache_size.
show processlist;
— данные о процессах Mysql
FLUSH QUERY CACHE
– дефрагментировать кэш Mysql
Оптимизация медленных запросов Mysql
Следующая часть посвящена тому, как определить медленные запросы к Mysql и анализировать их.
Для начала снова обратимся к файлу конфигурации MySQl — my.cnf. Здесь необходимо обратить внимание на такой пункт настроек, как лог медленных запросов. Выглядит он так:
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 15
#log-queries-not-using-indexes
Здесь вы видите 3 пункта. Определение где будет храниться лог запросов, определение количества секунд выполнения запроса, которые должны заноситься в лог и указание записывать отсутствие индексов у баз данных. Включаем все три и через некоторое время проводим анализ с помощью команды:
mysqldumpslow -s c -t 10
Эта команда выведет 10 самых медленных запросов. Если изменить цифру соответственно выведется нужное количество запросов сортировкой по самому долгому выполнению. После этого вы уже сможете анализировать их и оптимизировать скрипты.
я строке следующую команду:
# mysqlcheck —optimize —all-databases
Она выполнит оптимизацию всех баз данных в Mysql. Если вам нужно оптимизировать только одну конкретную базу данных, то используйте команду
# mysqlcheck —optimize <имя_базы_данных>
Но перед этим обязательно сделайте резервную копию базы данных, так как процесс оптимизации может занять некоторое время и при нестабильной работе сервера могут возникнуть проблемы.