If-Koubou

Monitoruj wszystkie zapytania SQL w MySQL

Monitoruj wszystkie zapytania SQL w MySQL (Jak)

Microsoft SQL Server ma narzędzie o nazwie Profiler, które można wykorzystać do monitorowania każdego zapytania SQL, które trafia do bazy danych. Jest to niezwykle przydatne dla programistów i administratorów baz danych do rozwiązywania problemów z zapytaniami generowanymi przez aplikację.

Po tym, jak często korzystałem z MySQL, była to jedna z pierwszych rzeczy, które chciałem wymyślić, jak to zrobić. Jak inaczej można zobaczyć rzeczywisty kod SQL wygenerowany przez WordPress lub phpBB?

Pierwszą rzeczą, którą musimy zrobić, to włączyć rejestrowanie zapytań w MySQL. Ostrzegam, że powinno to być zrobione tylko w fazie rozwoju ... to naprawdę spowalnia rzeczy, aby logować każde zapytanie do pliku.

Znajdź i otwórz plik konfiguracyjny MySQL, zwykle /etc/mysql/my.cnf na Ubuntu. Poszukaj sekcji "Rejestrowanie i replikacja"

#
# * Rejestrowanie i replikacja
#
# Obie lokalizacje zostają obrócone przez cronjob.
# Pamiętaj, że ten typ dziennika to zabójca wydajności.

log = /var/log/mysql/mysql.log

Po prostu odkomentuj zmienną "log", aby włączyć rejestrowanie. Zrestartuj MySQL za pomocą tego polecenia:

sudo /etc/init.d/mysql restart

Teraz jesteśmy gotowi, aby rozpocząć monitorowanie zapytań w miarę ich pojawiania się. Otwórz nowy terminal i uruchom to polecenie, aby przewinąć plik dziennika, dostosowując ścieżkę, jeśli to konieczne.

tail -f /var/log/mysql/mysql.log

Teraz uruchom swoją aplikację. Zobaczysz, że zapytania bazy danych zaczynają latać w twoim oknie terminala. (upewnij się, że na terminalu jest włączone przewijanie i historia)

Jestem pod wrażeniem, phpbb3 ma dość ciasny, zoptymalizowany kod SQL. Z kolei WordPress jest bardzo nieefektywny.