Логи в MySQL включают: логи ошибок, бинарные логи, общие логи запросов, логи медленных запросов и т.д. Вот две часто используемые функции: общий журнал запросов и журнал медленного запроса.
1) Журналы медленных запросов:Фиксируйте все запросы, выполняемые более long_query_time секунд или не использующие индексы
2) Общий журнал запросов:Записывайте установленные и выполненные операторы клиентских соединений.
1: О медленном запросе MySQL:
Журнал медленного запроса MySQL — это вид логирования, предоставляемого MySQL, который используется для записи заявлений о превышении порогового срока отклика в MySQL, в частности к SQL с временем выполнения более long_query_time значением, которое будет записано в журнал медленного запроса (логи можно записывать в файлы или таблицы базы данных, если требования к производительности высоки, рекомендуется записывать файлы). По умолчанию база данных MySQL не поддерживает медленные логи запросов, а значение long_query_time по умолчанию — 10 (то есть 10 секунд, обычно установленное на 1 секунду), то есть операторы, работающие более 10 секунд, являются медленными запросами.
В целом, медленные запросы происходят в больших таблицах (например, таблица содержит миллионы данных), и поля условий запроса не индексируются; в этот момент поля, соответствующие условиям запроса, сканируются по всей таблице, что занимает время на проверку long_query_time.
Это медленное сообщение запроса.
Вопрос: Как я могу проверить текущий статус открытия журнала медленного запроса?
Введите команду в MySQL:
В основной степени мастерятся следующие параметры:
(1) Значение slow_query_log ВКЛЮЧЕНО для включения журнала медленного запроса, а ВЫКЛЮЧЕНО — для отключения журнала медленного запроса.
(2) Значение slow_query_log_file — это записанный журнал медленного запроса к файлу (примечание: имя по умолчанию — hostname.log, независимо от того, записан ли журнал медленного запроса в указанный файл, необходимо указать формат выходного журнала медленного запроса как файл, и связанная команда: показывать переменные, такие как '%log_output%'; чтобы увидеть формат выхода).
(3) long_query_time указывает порог для медленного запроса, то есть если время выполнения превышает этот порог, это оператор медленного запроса, а значение по умолчанию — 10 секунд.
(4) log_queries_not_using_indexes Если значение установлено в ON, все запросы, не использующие индекс, будут записаны (Примечание: если log_queries_not_using_indexes установлен только в ON, а slow_query_log — в OFF, настройка не вступит в силу в данный момент, то есть она вступит в силу, если значение slow_query_log установлено в ON) , который обычно временно включается при настройке производительности.
2. Общий журнал запросов
Если значение general_log равноON включен, дляOFF закрыт(По умолчанию выключен).
Проверьте формат текущего вывода журнала медленного запроса, который может быть FILE (hostname.log, хранящийся в файле данных в цифровой базе данных) или TABLE (mysql.general_log хранится в базе данных)
(Примечание: приведённая выше команда действует только на данный момент, когда перезагрузки MySQL недействительны; если вы хотите, чтобы она вступила в силу навсегда, нужно настроить my.cnf)
Отображение логарифмического выхода выглядит следующим образом:
Файл my.cnf настроен следующим образом:
general_log=1 #为1表示开启通用日志查询, значение 0 указывает, что общий логарифмический запрос закрыт
log_output=FILE,TABLE# Устанавливает формат вывода общего журнала в файл и таблицу
|