2011-06-21 8 views
11

Używam serwera MySQL wersja: 5.5.8-log MySQL Community Server (GPL)
Chcę logować kwerendy, które nie używają INDEKSU i jest wolny!
Tutaj kopiuję moje ustawienia my.ini.Zaloguj QUERIES nie używając INDEX - MySQL

[mysqld]
port = 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 "

jaka zmiana muszę zrobić?

Odpowiedz

26

log_queries_not_using_indexes =1 //(or Yes) (Z mysql)

+7

Czy to dobry pomysł, aby wykorzystać te dni? ponieważ kończy się to wolnymi dziennikami zapytań GB, ponieważ zapytania zajmujące ułamki sekund będą rejestrowane w przypadkach, w których indeksy nie są używane, ponieważ indeks nie jest szybszy. – wired00

+0

Spowoduje to zarejestrowanie zapytań, które nie używają indeksów, niezależnie od tego, czy przekroczą one long_query_time. Pytanie zadawane dla zapytań, które nie miały indeksów I są długotrwałe. – ClearCrescendo

+0

to będzie logować kwerendy bez użycia indeksów niezależnie od wartości long_query_time? –

5

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 

czy zapytań, które nie używają indeksów są rejestrowane w dzienniku powolne zapytania. Patrz rozdział 5.2.4

1

Może przydatne dla użytkowników systemu Linux. (Testowałem: Ubuntu 16.04) korzeń

dostać się w konfiguracji terminala i edycja 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 

Dodaj plik dziennika i zrestartować serwer 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 

test powolny rejestrowanie z zapytań 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);