Включение журнала медленных запросов MySQL: подробное руководство
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для активации журнала медленных запросов MySQL нужно запустить команды, которые определят системные переменные:
SET GLOBAL slow_query_log = 1;
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow-query.log';
SET GLOBAL long_query_time = 2;
Вместо /var/log/mysql/slow-query.log
укажите актуальный путь к файлу журнала на вашем сервере.
Пошаговое руководство: Раскрываем суть журнала медленных запросов
Из этого руководства вы узнаете, как настроить и управлять журналом медленных запросов slow_query_log
для MySQL.
Введение в ваш MySQL
Определите версию MySQL, так как реализация журнала медленных запросов может варьироваться:
- Начиная с версии 5.1.6, настройки применяются на лету.
- Для версий до 5.1.6, их необходимо определить в файле конфигурации
my.cnf
илиmy.ini
.
Настройка для MySQL < 5.1.6 (my.cnf)
В старых версиях MySQL добавьте параметры журнала в файл конфигурации следующим образом:
[mysqld]
log-slow-queries = /var/log/mysql/slow-query.log
long_query_time = 2
log_queries_not_using_indexes = 1
После изменений перезагрузите MySQL:
sudo systemctl restart mysql
Теперь вы так же влияете на MySQL, как исторические личности на ход событий!
Настройка для MySQL ≥ 5.1.6 (в режиме выполнения)
В версиях MySQL 5.1.6 и более поздних изменения можно делать прямо в процессе работы. Используйте команды:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL slow_query_log_file = '/ВАШ_ПУТЬ/slow-query.log';
SET GLOBAL long_query_time = 2;
Интерпретация параметров
Разберем подробнее параметры:
slow_query_log
: переключает журнал (включено – 1/ON или выключено – 0/OFF).slow_query_log_file
: указывает путь к файлу журнала.long_query_time
: устанавливает время-порог в секундах, по истечении которого запрос считается медленным.
Сохранение изменений
Изменения, выполненные в реальном времени, являются временными. Чтобы они стали постоянными, пропишите их в my.cnf
.
Проверка изменений
После внесения изменений убедитесь, что они применились, используя запрос:
SHOW VARIABLES LIKE '%slow%';
Визуализация
Настройка журнала медленных запросов аналогична подготовке нового игрового ПК:
🎮 Настройки (Журнал медленных запросов):
1. Включение : `SET GLOBAL slow_query_log = 'ON';`
2. Путь к файлу журнала : `SET GLOBAL slow_query_log_file = '/путь/к/log-файлу';`
3. Порог времени запроса : `SET GLOBAL long_query_time = 2;`
4. Запись запросов без индексов: `SET GLOBAL log_queries_not_using_indexes = 'ON';`
И точно так же, как вы готовите ПК к активной игровой нагрузке, вы конфигурируете MySQL, чтобы защитить его от медленных запросов.
Джедайские трюки с журналом медленных запросов
Анализ журнала
Просматривайте файл журнала с помощью таких инструментов, как mysqldumpslow
или pt-query-digest
, чтобы находить "подводные камни" в запросах.
Индивидуальная настройка
Если вам необходимо отслеживать медленные запросы, не использующие индексы, включите параметр log_queries_not_using_indexes
.
Контроль размера
Мониторьте размер файла журнала, т.к. он может быстро расти, занимая место и ухудшая производительность.
Осторожно на продакшене
На продакшн-серверах используйте журнал медленных запросов с предосторожностью, предварительно проверив его на сервере разработки или стейджинге.
Полезные материалы
- Руководство по MySQL 5.7 :: Журнал медленных запросов — Официальная документация MySQL по работе с журналом медленных запросов.
- Профилирование запросов MySQL от DigitalOcean — Руководство по профилированию запросов MySQL.
- Обзор журнала медленных запросов MariaDB — Инструкция по использованию журнала медленных запросов в MariaDB.
- Документация Percona Toolkit по
pt-query-digest
— Руководство по использованиюpt-query-digest
для анализа журнала медленных запросов и оптимизации работы базы данных.