Monitorovať všetky SQL dopyty v MySQL
Microsoft SQL Server má nástroj s názvom Profiler, ktorý môžete použiť na sledovanie každého SQL dotazu, ktorý narazí na databázu. To je mimoriadne užitočné pre programátorov, ako aj administrátorov databáz na riešenie problémov s exaktnými dotazmi generovanými aplikáciou.
Keď som často používal MySQL, bola to jedna z prvých vecí, ktorú som chcel zistiť, ako mám robiť. Ako inak môžete vidieť skutočný kód SQL vygenerovaný WordPress alebo phpBB?
Prvá vec, ktorú musíme urobiť, je zapnutie zaznamenávania otázok v MySQL. Buďte varovaní, že by sa to malo robiť len vo vývoji ... skutočne to spomaľuje, aby sa zaznamenal každý dotaz do súboru.
Nájdite a otvorte konfiguračný súbor MySQL, zvyčajne /etc/mysql/my.cnf na Ubuntu. Vyhľadajte sekciu s názvom "Prihlásenie a replikácia"
#
# * Prihlásenie a replikácia
#
# Obe umiestnenie sa otáča pomocou cronjob.
# Uvedomte si, že tento typ denníka je výkonný vrah.log = /var/log/mysql/mysql.log
Stačí odkomentovať premennú "log" na zapnutie protokolovania. Reštartujte MySQL pomocou tohto príkazu:
sudo /etc/init.d/mysql restart
Teraz sme pripravení začať sledovať dopyty pri ich príchode. Otvorte nový terminál a spustite tento príkaz na posúvanie súboru denníka a podľa potreby upravte cestu.
tail -f /var/log/mysql/mysql.log
Teraz spustite aplikáciu. Zobrazia sa databázové dotazy, ktoré začnú lietať vo vašom terminálovom okne. (uistite sa, že máte na termináli aktivované rolovanie a históriu)
Som ohromený, phpbb3 má pomerne tesný a optimalizovaný kód SQL. WordPress je na druhej strane veľmi neúčinná.