MySQL медленный журнал запросов - насколько медленно, медленно? - PullRequest
20 голосов
/ 18 сентября 2008

Что вы считаете оптимальной настройкой для медленного параметра журнала медленных запросов mysql и почему?

Ответы [ 5 ]

18 голосов
/ 18 сентября 2008

Я рекомендую эти три строки

log_slow_queries
set-variable = long_query_time=1
log-queries-not-using-indexes

Первый и второй будут регистрировать любой запрос в течение секунды. Как отмечали другие, один-секундный запрос довольно далеко, если вы стремитесь к высокой скорости транзакций на своем сайте, но я обнаружил, что он вызывает некоторые реальные WTF; запросы, которые должны быть быстрыми, но для какой-либо комбинации данных, с которыми они были выполнены, не было.

Последний будет регистрировать любой запрос, который не использует индекс. Если вы не используете хранилище данных для какого-либо общего запроса, у вас должен быть лучший индекс, который вы можете найти, поэтому обратите внимание на его вывод.

Хотя это, конечно, не для производства, этот последний вариант

log = /var/log/mysql/mysql.log

будет регистрировать все запросы, которые могут быть полезны, если вы пытаетесь настроить конкретную страницу или действие.

4 голосов
/ 18 сентября 2008

В любое время / вы / чувствуете, что запрос в ваших системах неприемлемо медленен.

Это зависит от типа выполняемых вами запросов и типа системы; запрос, занимающий несколько секунд, может не иметь значения, если какая-то внутренняя система отчетов выполняет сложный анализ данных и т. д., где задержка не имеет значения, но может быть совершенно неприемлемой в системе, ориентированной на пользователя, которая должна быстро возвращать результаты.

3 голосов
/ 19 сентября 2008

Петр Зайцев опубликовал хорошую статью об использовании медленного журнала запросов. Важно отметить, что он также учитывает частоту использования определенного запроса. Отчеты, запускаемые один раз в день, не важны для быстрой работы. Но то, что запускается очень часто, может стать проблемой, даже если это займет полсекунды. И вы не можете обнаружить это без микрос медленного патча.

3 голосов
/ 18 сентября 2008

Установите его на то, что вам нравится. Единственная проблема заключается в том, что в стандартном MySQL его можно установить с шагом в 1 секунду, что слишком медленно для некоторых людей.

Большинство интенсивно используемых производственных серверов выполняют слишком много запросов, чтобы зарегистрировать их все. Медленный журнал - это способ фильтрации журнала, чтобы мы могли видеть те, которые занимают много времени (большинство запросов, вероятно, будут выполнены почти мгновенно). Это немного тупой инструмент.

Если хотите, установите это значение равным 1 секунде. Вероятно, вам не понадобится свободного места на диске или проблема с производительностью.

Это действительно риск включения медленного журнала - не делайте этого, если вы чувствуете, что это может вызвать дальнейшие проблемы с диском или производительностью.

Конечно, вы можете включить медленный журнал на непроизводственном сервере и выполнить моделируемую нагрузку, но это никогда не будет прежним.

1 голос
/ 18 сентября 2008

Это не только тупой инструмент с точки зрения разрешения, но также и весь MySQL-экземпляр, так что если у вас разные базы данных с разными требованиями к производительности, вам отчасти не повезло. Очевидно, что есть способы обойти это, но важно помнить об этом при настройке медленного журнала.

Помимо требований к производительности вашего приложения, еще одним фактором, который необходимо учитывать, является то, что вы пытаетесь записать. Используете ли вы журнал для перехвата запросов, которые могут угрожать стабильности вашего экземпляра базы данных (например, вызывающих взаимные блокировки или декартовы объединения), или запросов, которые влияют на производительность для определенных пользователей и которые могут потребовать небольшой настройки? Это повлияет на то, где вы установите свой порог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...