Główna » jak » Monitoruj wszystkie zapytania SQL w MySQL

    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.