Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Włącz rejestrowanie powolnych zapytań (dziennik powolnych zapytań) w bazie danych MySQL

Jednym z głównych wymagań dotyczących szybkiego serwera WWW jest posiadanie wydajnych i efektywnych instrukcji SQL lub zoptymalizowanych zapytań. Wszelkie nieoptymalne polecenia lub instrukcje SQL (Structured Query Language), których wykonanie trwa zbyt długo lub zbyt długo, zużywają dużo zasobów systemowych, powodując wolniejsze działanie bazy danych MySQL, a następnie coraz więcej zaległych zapytań w kolejce i kiedy Osiągnięto limit połączenia, odwiedzającym odmówiono lub odmówiono połączenia. W najgorszym przypadku Twój serwer internetowy również ulegnie awarii lub będzie stale słabiej działał. Przypadek ten jest szczególnie prawdziwy, gdy używasz typu tabeli MyISAM, który używa blokowania na poziomie tabeli zamiast blokowania na poziomie wiersza w witrynie o dużym natężeniu ruchu.

Czasami pojedyncze zapytanie SQL może być przyczyną wszystkich problemów z serwerem. MySQL ma wbudowaną funkcję przechwytywania logów powolnych zapytań lub identyfikowania zapytań, które nie są optymalne i których zakończenie zajmuje dużo czasu, co pozwala rejestrować wszystkie wolno działające zapytania, których wykonanie przez silnik bazy danych MySQL zajęło określoną liczbę sekund. plik. Dziennik powolnych zapytań nie jest aktywowany lub domyślnie włączony MySQL, dlatego jest to jeden z rzadziej używanych dzienników.

Aby włączyć logowanie powolnych zapytań, po prostu dodaj następującą linię do pliku konfiguracyjnego MySQL (my.cnf lub my.ini), a następnie zrestartuj serwer MySQL:

log-slow-queries

Lub

log-slow-queries = [path to the log file]

Zastąp [ścieżkę do pliku dziennika] z rzeczywistą ścieżką do pliku dziennika powolnego zapytania, w którym MySQL ma zapisywać dziennik, co jest wartością opcjonalną.

Możesz też uruchomić mysqld z –log-slow-queries[=nazwa_pliku] opcja włączenia powolnego dziennika zapytań. W obu składniach, jeśli nie określono nazwy pliku dziennika, domyślną nazwą jest nazwa_hosta -slow.log, przechowywane w katalogu plików danych MySQL. Jeśli podano nazwę pliku, ale nie jako bezwzględną nazwę ścieżki, serwer zapisuje plik również w katalogu danych.

Po włączeniu powolnego dziennika zapytań MySQL utworzy, przechwyci i zarejestruje w pliku dziennika wszystkie instrukcje SQL, które zajęły więcej niż long_query_time sekund do wykonania, które domyślnie jest ustawione na 10 sekund . Czas na uzyskanie początkowych blokad tabeli nie jest liczony jako czas wykonania. mysqld zapisuje oświadczenie do dziennika powolnych zapytań po jego wykonaniu i po zwolnieniu wszystkich blokad, więc kolejność dziennika może być inna niż kolejność wykonywania.

Następnie można przeanalizować wszystkie wolne zapytania SQL w pliku dziennika, a następnie podjąć niezbędne kroki w celu optymalizacji instrukcji SQL. Powolny dziennik zapytań informuje o tym, kiedy zapytanie zostało zakończone, jak długo trwało wykonanie zapytania, ile czasu zajęło zabezpieczenie jego blokad, ile wierszy zostało odesłanych w wyniku, ile wierszy zostało przebadanych w celu określenia wynik, która baza danych została użyta i samo zapytanie. Należy jednak pamiętać, że zapytanie SQL zawarte w dzienniku może być już optymalne, ale wykonywane powoli, ponieważ zasoby systemowe zostały zużyte przez rzeczywistą instrukcję slow, która wymaga dopracowania.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność MYSQL OR vs IN

  2. Jak korzystać z widoków w bazie danych MySQL

  3. Błąd MySQL 1093 - Nie można określić tabeli docelowej do aktualizacji w klauzuli FROM

  4. 2 sposoby zwracania wierszy zawierających tylko znaki niealfanumeryczne w MySQL

  5. Czy w MySQL jest rozróżniana wielkość liter w nazwach kolumn i tabel?