Monitoruj wszystkie zapytania SQL w MySQL
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 przejściu na częste korzystanie 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.