Spec-Zone .ru
спецификации, руководства, описания, API
|
Медленный журнал запросов состоит из SQL-операторов, которые взяли больше чем long_query_time
секунды, чтобы выполниться и требуемый, по крайней мере, min_examined_row_limit
строки, которые будут исследованы. Минимальные и значения по умолчанию long_query_time
0 и 10, соответственно. Значение может быть определено к
разрешению микросекунд. Для того, чтобы зарегистрировать к файлу, времена пишутся включая часть микросекунд. Для
того, чтобы зарегистрировать к таблицам, только пишутся целочисленные времена; часть микросекунд игнорируется.
По умолчанию административные операторы не регистрируются, ни являются запросами, которые не используют,
индексирует для поисков. Это поведение может быть изменено, используя --log-slow-admin-statements
и log_queries_not_using_indexes
, как описано позже.
Время, чтобы получить начальные блокировки не считается как время выполнения. mysqld пишет оператор в медленный журнал запросов после того, как это было выполнено и после того, как все блокировки были выпущены, таким образом, порядок журнала мог бы отличаться от порядка выполнения.
По умолчанию медленный журнал запросов отключается. Чтобы определить начальное медленное состояние журнала
запросов явно, использовать --slow_query_log[={0|1}]
. Без параметра или параметра 1, --slow_query_log
включает журналу. С параметром 0, эта опция отключает журнал.
Чтобы определить имя файла журнала, использовать --slow_query_log_file=
.
Чтобы определить место назначения журнала, использовать file_name
--log-output
(как описано в Разделе
5.2.1, "Выбирая Общий Запрос и Замедляют Выходные Места назначения Журнала запросов").
Если Вы не определяете имени для медленного файла журнала запросов, имя по умолчанию
. Сервер создает файл в каталоге данных, если
абсолютный путь не дается, чтобы определить различный каталог. host_name
-slow.log
Чтобы отключить или включить медленному журналу запросов или изменить название файла журнала во времени
выполнения, используйте глобальную переменную slow_query_log
и slow_query_log_file
системные переменные. Набор slow_query_log
к 0 (или OFF
) отключить журнал
или к 1 (или ON
) включать этому. Набор slow_query_log_file
определить имя файла журнала. Если файл журнала уже
открыт, он закрывается, и новый файл открывается.
Когда медленный журнал запросов включается, вывод записей сервера любым местам назначения, определенным --log-output
опция или log_output
системная переменная. Если Вы включаете журналу, сервер открывает файл
журнала и пишет сообщения запуска в него. Однако, далее журналирование запросов к файлу не происходит если FILE
место назначения журнала выбирается. Если место назначения NONE
, сервер не пишет запросов, даже если медленный журнал запросов включается.
Определение имени файла журнала не имеет никакого эффекта на журналирование, если целевое значение журнала не
содержит FILE
.
Сервер пишет меньше информации в медленный журнал запросов (и двоичный журнал), если Вы используете --log-short-format
опция.
Чтобы включать медленные административные операторы в операторы, записанные медленному журналу запросов,
используйте --log-slow-admin-statements
параметр сервера. Административные операторы
включают ALTER TABLE
, ANALYZE
TABLE
, CHECK TABLE
, CREATE INDEX
, DROP
INDEX
, OPTIMIZE TABLE
,
и REPAIR TABLE
.
Включать запросы, которые не используют, индексирует для поисков строки в операторах, записанных медленному
журналу запросов, включите log_queries_not_using_indexes
системная переменная. Когда такие запросы
регистрируются, медленный журнал запросов может вырасти быстро. Возможно поместить ограничение скорости в эти
запросы, устанавливая log_throttle_queries_not_using_indexes
системная переменная. По умолчанию эта
переменная 0, что означает, что нет никакого предела. Положительные значения налагают наминутный предел на
журналировании запросов, которые не используют, индексирует. Первое такой запрос открывает 60-секундное окно, в
пределах которого журналы сервера запрашивает до данного предела, затем подавляет дополнительные запросы. Если
там подавляются запросы, когда окно заканчивается, сервер регистрирует сводку, которая указывает, сколькими было
и совокупное время, проведенное в них. Следующее 60-секундное окно начинается, когда сервер регистрирует
следующий запрос, который не использует, индексирует.
Сервер использует параметры управления в следующем порядке, чтобы определить, записать ли запрос в медленный журнал запросов:
Запрос не должен или быть административным оператором, или --log-slow-admin-statements
должно быть, был определен.
Запрос, должно быть, взял, по крайней мере, long_query_time
секунды, или log_queries_not_using_indexes
должен быть включен и запрос, используемый
не, индексирует для поисков строки.
Запрос, должно быть, исследовал, по крайней мере, min_examined_row_limit
строки.
Запрос не должен быть подавлен согласно log_throttle_queries_not_using_indexes
установка.
Сервер не пишет запросы, обработанные кэшем запроса к медленному журналу запросов, ни запросами, которые не извлекли бы выгоду из присутствия индексирования, потому что у таблицы есть нулевые строки или одна строка.
По умолчанию ведомое устройство репликации не пишет тиражированные запросы в медленный журнал запросов. Чтобы
изменить это, используйте --log-slow-slave-statements
параметр сервера.
С MySQL 5.6.3 пароли в операторах, записанных медленному журналу запросов, переписываются сервером, чтобы не произойти буквально в простом тексте. Перед MySQL 5.6.3 не переписываются пароли в операторах, и медленный журнал запросов должен быть защищен. См. Раздел 6.1.2.3, "Пароли и Журналирование".
Медленный журнал запросов может использоваться, чтобы найти запросы, которые занимают много времени, чтобы выполниться и являются поэтому кандидатами на оптимизацию. Однако, исследование длинного медленного журнала запросов может стать трудной задачей. Чтобы сделать это легче, можно обработать медленный файл журнала запросов, используя mysqldumpslow команду, чтобы суммировать запросы, которые появляются в журнале. См. Раздел 4.6.9, "mysqldumpslow — Суммируют Медленные Файлы Журнала запросов".