Skip to main content

Monitorovať všetky SQL dotazy v MySQL

Monitorovať všetky SQL dotazy v MySQL

Geoffrey Carr

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.

Po častom prechode na MySQL to bola jedna z prvých vecí, ktorú som chcel zistiť, ako mám robiť. Ako inak môžete vidieť skutočný kód SQL generovaný programom WordPress alebo phpBB?

Prvá vec, ktorú budeme musieť urobiť, je zapnúť zaznamenávanie otázok v MySQL. Buďte varovaní, že by sa to malo robiť len vo vývoji ... to skutočne 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"

## * Logging and Replication## Both location gets rotated by the cronjob.# Be aware that this log type is a performance killer.

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ť dotazy 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 dotazy databázy, 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á.

Link
Plus
Send
Send
Pin