Назад | Перейти на главную страницу

MySQL: как включить медленный журнал запросов?

Можете ли вы привести мне пример того, как включить журнал медленных запросов MySQL?

Согласно док:

Начиная с MySQL 5.1.29, используйте --slow_query_log [= {0 | 1}] для включения или отключения журнала медленных запросов и, при необходимости, --slow_query_log_file = имя_файла чтобы указать имя файла журнала. В --log-медленные запросы опция устарела.

Итак, как мне использовать эту опцию? Могу я положить это в my.cnf? Был бы очень признателен за пример.

Верный.

Лучше всего поместить это в общую / глобальную (верхнюю) часть вашего файла my.cnf.

Вам нужно сделать две вещи: (1) включить ее и (2) определить место назначения файла журнала.

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log

Надеюсь это поможет.

Вот кое-что интересное.

MySQL 5.1 / 5.5 позволяет преобразовывать журнал медленных запросов в MyISAM.

Вот как я делаю это для своих клиентов:

Шаг 1) Добавьте эту строку в /etc/my.cnf

log_output=TABLE
slow_query_log
slow_query_log_file=slow-queries.log

Шаг 2) Перезапустите mysql (перезапуск службы mysql)

На данный момент таблица mysql.slow_log существует, но как механизм хранения CSV.

Шаг 3) Преобразуйте mysql.slow_log в MyISAM и проиндексируйте поле start_time

SET @old_log_state = @@global.slow_query_log;
SET GLOBAL slow_query_log = 'OFF';
ALTER TABLE mysql.slow_log ENGINE = MyISAM;
ALTER TABLE mysql.slow_log ADD INDEX (start_time);
SET GLOBAL slow_query_log = @old_log_state;

Теперь вы можете запускать для него запросы SELECT.

Попробуйте.