Тематические термины: MySQL, MariaDB.
Данный журнал помогает найти узкие места в работе СУБД MySQL или MariaDB и повысить ее производительность. Инструкция написана на примере Linux CentOS и будет немного отличаться в зависимости от используемой операционной системы, но принцип остается такой же.
Для включения возможности показа медленных запросов открываем один из файлов конфигурации сервера баз данных:
vi /etc/my.cnf
vi /etc/mysql/mariadb.conf.d/50-server.cnf
vi /etc/my.cnf.d/server.cnf
* файл my.cnf может находиться в каталоге /etc, как в данном примере или в каталоге с базами (его можно посмотреть командой select @@datadir в командной оболочке СУБД).
Добавляем в открытый файл (секцию mysqld) две строчки.
MySQL (5.6 и позднее) или MariaDB:
[mysqld]slow_query_log = 1long_query_time = 5slow_query_log_file = /var/log/mysql/mysql-slow.loglog-queries-not-using-indexes = 1
* где slow_query_log включает лог; long_query_time указывает, как долго должен выполняться запрос, чтобы считаться долгим; slow_query_log_file — путь до файла, в который будет записываться лог; log-queries-not-using-indexes — учитывать только те запросы, которые выполняют запрос без индекса.
MySQL (версия < 5.6):
[mysqld]long_query_time = 30log-slow-queries = /var/log/mysql/mysql-slow.log
* при такой настройке SQL-запросы, которые по длительности превысят 30 секунд попадут в файл /var/log/mysql/mysql-slow.log.
Создаем каталог для журнала:
mkdir /var/log/mysql
Создаем файл лога:
touch /var/log/mysql/mysql-slow.log
Задаем владельца mysql для созданного файла:
chown mysql:mysql /var/log/mysql/mysql-slow.log
И перезагружаем сервер MySQL:
systemctl restart mysqld || systemctl restart mariadb
Создаем каталог для лога, сам лог и зададим владельца:
Открываем командную оболочку mysql:
mysql -uroot -p
Выполняем последовательно команды:
> SET GLOBAL slow_query_log = ‘ON’;
> SET GLOBAL slow_launch_time = 2;
> SET GLOBAL slow_query_log_file = ‘/var/log/mysql/mysql-slow.log’;
> FLUSH LOGS;
* где slow_query_log — включает или выключает лог медленных запросов; slow_launch_time — задает время, при превышении которого запрос будет считаться медленным; slow_query_log_file — путь до файла, в который будут записываться все медленные запросы.
Просмотр примененных параметров (выполняется в командной оболочке mysql):
> SHOW VARIABLES LIKE ‘%slow%’;
Для просмотра запросов, открываем наш файл в режиме непрерывного просмотра содержимого:
tail -f /var/log/mysql/mysql-slow.log
И ждем появления медленных SQL-запросов.
Просмотр логов с помощью mysqldumpslow — данная утилита показывает медленные запросы с количеством встречаемости:
mysqldumpslow /var/log/mysql/mysql-slow.log
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies