Концепция журнала медленных запросов
Журнал медленных запросов MySQL — это запись журнала, предоставляемая MySQL. Он используется для записи операторов, время ответа которых превышает пороговое значение в MySQL. В частности, он относится к SQL, время выполнения которых превышает значение long_query_time, которое будет записано в журнал медленных запросов. . Значение long_query_time по умолчанию равно 10, что означает выполнение операторов более 10 с. По умолчанию база данных Mysql не запускает журнал медленных запросов. Нам необходимо вручную задать этот параметр. Конечно, если он не нужен для настройки, вообще не рекомендуется запускать этот параметр, потому что включается журнал медленных запросов. принесет более или менее определенный эффект на производительность. Журнал медленных запросов поддерживает запись записей журнала в файлы, а также запись записей журнала в таблицы базы данных.
Настройки связанных параметров
медленный_запрос_log: включить ли журнал медленных запросов, 1 означает открытие, 0 означает закрытие.
log-slow-queries: путь хранения журнала медленных запросов старой версии (версии 5.6 или ниже) базы данных MySQL. Вам не нужно устанавливать этот параметр, система по умолчанию использует файл имя_хоста-slow.log по умолчанию.
файл журнала медленных запросов: Путь хранения журнала медленных запросов базы данных MySQL новой версии (5.6 и выше). Вам не нужно устанавливать этот параметр, система по умолчанию использует файл имя_хоста-slow.log по умолчанию.
long_query_time: порог медленного запроса. Когда время запроса превышает установленный порог, записывается журнал.
log_queries_not_using_indexes: запросы, которые не используют индексы, также записываются в журнал медленных запросов (необязательно).
log_output: метод хранения журнала. log_output='FILE' означает сохранение журнала в файл, значением по умолчанию является 'FILE'. log_output=’TABLE’ означает сохранение журнала в базе данных, чтобы информация журнала записывалась в таблицу mysql.slow_log. База данных MySQL поддерживает одновременно два метода хранения журналов. При настройке их можно разделить запятыми, например: log_output=’FILE,TABLE’. Ведение журнала в выделенной таблице журнала системы потребляет больше системных ресурсов, чем запись в файл. Поэтому, если вам необходимо включить журналы медленных запросов и добиться более высокой производительности системы, рекомендуется отдать приоритет ведению журнала в файлах.
Конфигурация
По умолчанию значение медленного_запроса_log равно OFF, что означает, что журнал медленных запросов отключен. Его можно включить, установив значение медленного_запроса, как показано ниже.
mysql> show variables like ‘%slow_query_log%’;
Способ локальной конфигурации
Включить журнал медленных запросов
mysql> set global slow_query_log=1;
Использовать набор global медленный_запрос_log=1 включает журнал медленных запросов только для текущей базы данных Вступить в силу,Он станет недействительным, если MySQL будет перезапущен. Если вы хотите, чтобы это было навсегда,Вам необходимо изменить файл конфигурации my.cnf (то же самое относится и к другим системным переменным). Например, как показано ниже
Файл конфигурации включает режим медленных запросов.
Измените файл my.cnf, добавьте или измените параметры медленный_запрос_log и медленный_запрос_log_file, а затем перезапустите сервер MySQL, как показано ниже.
slow_query_log =1
slow_query_log_file=/tmp/mysql_slow.log
Что касается параметра медленного запроса «slow_query_log_file», он указывает путь хранения файла журнала медленных запросов. Система по умолчанию предоставит файл имя_хоста-slow.log (если параметр «slow_query_log_file» не указан).
Итак, после включения журнала медленных запросов какой SQL-код будет записываться в журнал медленных запросов? Это контролируется параметром long_query_time. По умолчанию значение long_query_time составляет 10 секунд. Его можно изменить с помощью команды или параметра my.cnf. Ситуация, когда время выполнения точно равно long_query_time, не будет зафиксирована. Другими словами, в исходном коде MySQL оно считается больше, чем long_query_time, а не больше или равно. Начиная с MySQL 5.1, long_query_time начинает записывать время выполнения SQL-оператора в микросекундах, раньше оно записывалось только в секундах. Если записано в таблице, то будет записана только целая часть, а микросекундная часть не будет записана.
Как показано выше, я изменил переменную long_query_time, но значение переменной запроса long_query_time по-прежнему равно 10. Разве оно не изменено? Примечание. После использования команды set global long_query_time=4 для изменения вам необходимо повторно подключиться или открыть новый сеанс, чтобы увидеть измененное значение. Вы можете использовать переменные show, такие как «long_query_time», для просмотра значений переменных текущего сеанса. Вы также можете использовать глобальные переменные, такие как «long_query_time», вместо повторного подключения сеанса, как показано ниже:
Выполните следующий оператор SQL в MySQL, а затем проверьте соответствующий журнал медленных запросов, и вы найдете информацию, аналогичную следующей.
log_output Параметр хранилища — это метод указания журнала. log_output='FILE' означает сохранение журнала в файл, значением по умолчанию является 'FILE'. log_output=’TABLE’ означает сохранение журнала в базе данных, чтобы информация журнала записывалась в таблицу mysql.slow_log. MySQLбаза данных поддерживает два метода журналирования одновременно.,Конфигурацию можно отделять запятыми.,Например: log_output=’FILE,TABLE’. Записывать записи в специальную таблицу журнала системы.,Он потребляет больше системных ресурсов, чем запись в файл.,Поэтому для журналов медленных запросов вам необходимо включить,и необходимо иметь возможность получить более высокую производительность системы,Тогда рекомендуется сначала записать в файл.
Системная переменная log-queries-not-using-indexes: запросы, которые не используют индексы, также записываются в журнал медленных запросов (необязательно). При настройке рекомендуется включить эту опцию. Кроме того, если этот параметр включен, SQL, использующий полное сканирование индекса, также будет записываться в журнал медленных запросов.
This option does not necessarily mean that no index is used. For example, a query that uses a full index scan uses an index but would be logged because the index would not limit the number of rows.
Системная переменная log_slow_admin_statements указывает, записываются ли медленные операторы управления, такие как ANALYZE TABLE и ALTER TABLE, в журнал медленных запросов.
Инструмент анализа журналов mysqldumpslow
в производственной среде,Если вы хотите вручную проанализировать журналы,Найдите и проанализируйте SQL,Очевидно, это физическая работа.,MySQLпредоставил Инструмент анализа журналов mysqldumpslow
Просмотрите справочную информацию mysqldumpslow:
Просмотрите справочную информацию mysqldumpslow.
-s указывает, как сортировать,
c: счетчик доступа
л: время блокировки
r: вернуть запись
т: время запроса
al: среднее время блокировки
ar: среднее количество возвращаемых записей
at: среднее время запроса
-t означает верхнее n, то есть сколько предыдущих фрагментов данных возвращается;
-g, после этого вы можете написать обычный шаблон сопоставления, нечувствительный к регистру;
например
Получите 10 SQL-запросов, которые возвращают наибольшее количество наборов записей.
mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log
Получите 10 наиболее популярных SQL-запросов
mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log
Получите первые 10 операторов запроса, содержащих левые соединения, отсортированные по времени.
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log
При использовании этих команд также рекомендуется использовать | и другие, иначе экран может обновиться.
Общие рабочие параметры
SHOW PROCESSLIST
Запросить, что делают все пользователи
Если что-то не радует глаз. Вы можете убить [id] напрямую
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/183957.html Исходная ссылка: https://javaforall.cn