Журнал QUERIES не использует INDEX - MySQL

Я использую версию MySQL Server: 5.5.8-log MySQL Community Server (GPL)
Я хочу регистрировать запросы, которые не используют INDEX, и слишком медленны!
Я копирую здесь свои настройки my.ini.

[туздЫ]
порт = 3306
log = "E:/wamp/logs/genquery.log"

log_slow_queries
long_query_time = 1
slow_query_log = 1
slow_query_log_file = "E:/wamp/logs/slowquery.log"

какое изменение мне нужно сделать?

Ответ 1

log_queries_not_using_indexes =1 //(or Yes) (Из mysql)

Ответ 2

log_queries_not_using_indexes

Command-Line Format --log-queries-not-using-indexes
Option-File Format  log-queries-not-using-indexes
Option Sets Variable    Yes, log_queries_not_using_indexes
Variable Name   log_queries_not_using_indexes
Variable Scope  Global
Dynamic Variable    Yes
    Permitted Values
Type    boolean

Запрашиваются ли запросы, которые не используют индексы, в журнал медленных запросов. См. Раздел 5.2.4,

Ответ 3

В дополнение к ответу a1ex07 вы можете использовать команду оболочки mk-query-digest to выводить отчет ваших текущих запросов без использования журнала.

См. полную методологию: http://www.xaprb.com/blog/2009/08/18/how-to-find-un-indexed-queries-in-mysql-without-using-the-log/

Как упоминалось в статье, также можно группировать запросы по таблицам, выполняющим --group-by tables --report-format profile

Полезно быстро обнаруживать необработанные запросы.

Ответ 4

Может быть, полезен для пользователя Linux. (Testet: Ubuntu 16.04)

Получить root в терминале и изменить конфигурацию mysql

su
vim /etc/mysql/conf.d/mysql.cnf

[mysqld]
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=1
log_queries_not_using_indexes=1

Добавить файл журнала и перезапустить сервер mysql

touch /var/log/mysql/slow-query.log
chown mysql:adm /var/log/mysql/slow-query.log
chmod 640 slow-query.log
service mysql restart

Тестирование медленного ведения журнала с помощью SQL-запросов

/* Activate query log - Maybe useful to show errors (not necessary) */
SET GLOBAL SLOW_QUERY_LOG=ON;

/* Check if slow query log is working */
SELECT SLEEP(2);