Monitorizați toate interogările SQL din MySQL
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 vroiam să-i dau seama cum să procedez. 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 înregistra 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"
#
# * Înregistrarea și replicarea
#
# Ambele locații se rotește de cronjob.
# Fiți conștient de faptul că acest tip de jurnal este un criminal de performanță.log = /var/log/mysql/mysql.log
Doar dezactivați variabila "log" pentru a activa logarea. Reporniți MySQL cu această comandă:
sudo /etc/init.d/mysql reporniți
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.