Logi w MySQL obejmują: logi błędów, dzienniki binarne, ogólne dzienniki zapytań, wolne dzienniki zapytań itd. Oto dwie najczęściej używane funkcje: ogólny dziennik zapytań i wolny dziennik zapytań.
1) Wolne dzienniki zapytań:Rejestruj wszystkie zapytania, które są wykonywane dłużej niż long_query_time sekund lub nie używają indeksów
2) Ogólny dziennik zapytań:Zapisuj połączenia klientów, nawiązane i wykonane instrukcje.
1: O wolnym zapytaniu MySQL:
Slow log zapytań MySQL to rodzaj logowania oferowany przez MySQL, który służy do zapisywania instrukcji, że czas odpowiedzi przekracza próg w MySQL, odnosząc się konkretnie do SQL o czasie działania powyżej long_query_time wartości, który jest zapisywany w wolnym dzienniku zapytań (logi mogą być zapisywane do plików lub tabel bazy danych, jeśli wymagania wydajnościowe są wysokie, zaleca się zapisywanie plików). Domyślnie baza danych MySQL nie włącza wolnych logów zapytań, a domyślna wartość long_query_time wynosi 10 (czyli 10 sekund, zwykle ustawionych na 1 sekundę), czyli instrukcje działające dłużej niż 10 sekund są wolnymi instrukcjami zapytań.
Ogólnie rzecz biorąc, wolne zapytania występują w dużych tabelach (na przykład tabela zawiera miliony danych), a pola warunków zapytania nie są indeksowane; w tym momencie pola spełniające warunki zapytania są skanowane w całej tabeli, co zajmuje czas na sprawdzenie long_query_time.
To wolne zapytanie.
Pytanie: Jak mogę sprawdzić aktualny status otwarcia wolnego dziennika zapytań?
Wprowadź polecenie w MySQL:
Główne parametry są opanowane:
(1) Wartość slow_query_log to ON, aby włączyć wolny log zapytań, a OFF oznacza wyłączenie wolnego dziennika zapytań.
(2) Wartość slow_query_log_file to zarejestrowany wolny dziennik zapytań do pliku (uwaga: domyślna nazwa to hostname.log, niezależnie od tego, czy wolny dziennik zapytań jest zapisany do określonego pliku, należy określić format dziennika wyjściowego wolnego zapytania jako plik, a powiązane polecenie to: pokaż zmienne takie jak '%log_output%'; aby zobaczyć format wydruku).
(3) long_query_time określa próg wolnego zapytania, czyli jeśli czas wykonania przekroczy ten próg, jest to wolne zapytanie, a domyślna wartość to 10 sekund.
(4) log_queries_not_using_indexes Jeśli wartość jest ustawiona na ON, wszystkie zapytania, które nie wykorzystują indeksu, zostaną zarejestrowane (Uwaga: Jeśli log_queries_not_using_indexes jest ustawiony tylko na ON, a slow_query_log na OFF, ustawienie nie zadziała w tym momencie, czyli ustawienie zadziała, jeśli wartość slow_query_log jest ustawiona na ON) , który zazwyczaj jest tymczasowo włączany po dostrojeniu wydajności.
2. Ogólny dziennik zapytań
Jeśli wartość general_log wynosiON jest włączone, dlaOFF jest zamknięte(Domyślnie wyłączone).
Sprawdź format aktualnego wolnego dziennika zapytań, którym może być FILE (hostname.log przechowywany w pliku danych w cyfrowej bazie danych) lub TABELA (mysql.general_log przechowywana w bazie danych)
(Uwaga: Powyższe polecenie działa tylko obecnie, gdy restarty MySQL są nieprawidłowe, jeśli chcesz, aby zadziałało na stałe, musisz skonfigurować my.cnf)
Renderowanie wyjścia logu wygląda następująco:
plik my.cnf jest skonfigurowany następująco:
general_log=1 #为1表示开启通用日志查询, wartość 0 oznacza, że ogólne zapytanie logiczne jest zamknięte
log_output=FILE,TABLE# Ustawia format wyjściowy ogólnego loga na plik i tabelę
|