Как регистрировать запросы MySQL без индексов? - PullRequest
6 голосов
/ 17 августа 2011

Я вижу, что есть хорошая опция, позволяющая включать медленные запросы в журнале и запросы без индексов:

  SET GLOBAL log_queries_not_using_indexes=1;
  SET GLOBAL log_slow_queries=1;

ОК, ОК, но кажется, что оба они записывают в один и тот же файл журнала, который я указал на моем.Файл конфигурации cnf:

  [mysqld]
  long_query_time         = 1
  log-slow-queries        = /var/log/mysql/mysql-slow.log

Я использую mysqldumpslow, чтобы увидеть самые медленные запросы, но что мне нужно сделать, чтобы отдельно увидеть, что запросы без индексов?

Не могли бы вы мне помочь?

Заранее спасибо!

Лучший,

Якуб

1 Ответ

7 голосов
/ 17 августа 2011

Вы не можете.Файл журнала представляет собой текстовый файл, и из него нельзя определить, использовал ли запрос индекс во время выполнения.Кроме того, опция log-queries-not-using-indexes не обязательно регистрирует запросы, которые не используют индекс, см. :

Если вы используете эту опцию с включенным журналом медленных запросовзапросы, которые должны получить все строки, записываются в журнал.См. Раздел 5.2.5, «Журнал медленных запросов». Этот параметр не обязательно означает, что индекс не используется. Например, запрос, который использует полное сканирование индекса, использует индекс, но будет зарегистрирован, поскольку индекс не будет ограничивать число строк.

...