If-Koubou

Monitorizați toate interogările SQL din MySQL

Monitorizați toate interogările SQL din MySQL (Cum să)

Microsoft SQL Server are un instrument numit Profiler pe care îl puteți utiliza pentru a monitoriza fiecare interogare SQL care atinge baza de date. Acest lucru este extrem de util atât pentru programatori, cât și pentru administratorii de baze de date pentru a depana interogările exacte generate de o aplicație.

După ce am trecut frecvent la MySQL, acesta a fost unul dintre primele lucruri pe care am vrut să le dau seama cum să fac. Cum altfel puteți vedea codul SQL real generat de WordPress sau phpBB?

Primul lucru pe care trebuie să-l facem este să activați logarea interogărilor în MySQL. Fi avertizat că acest lucru ar trebui făcut doar în curs de dezvoltare ... într-adevăr încetinește lucrurile în jos pentru a loga fiecare interogare într-un fișier.

Găsiți și deschideți fișierul de configurare MySQL, de obicei /etc/mysql/my.cnf pe Ubuntu. Căutați secțiunea "Logare și replicare"

#
# * Logare și replicare
#
# Ambele locații sunt rotite de cronjob.
# Fiți conștienți de faptul că acest tip de jurnal este un criminal de performanță.

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

Deconectați doar variabila "log" pentru a activa logarea. Reporniți MySQL cu această comandă:

sudo /etc/init.d/mysql restart

Acum suntem gata să începem să monitorizăm interogările în momentul în care intră. Deschideți un nou terminal și executați această comandă pentru a derula fișierul jurnal, ajustând calea, dacă este necesar.

coada -f /var/log/mysql/mysql.log

Acum rulați cererea dumneavoastră. Veți vedea că interogările bazei de date încep să zboare în fereastra terminalului. (asigurați-vă că ați activat defilarea și istoricul pe terminal)

Sunt impresionat, phpbb3 are cod SQL destul de strans, optimizat. WordPress, pe de altă parte, este foarte ineficient.