Pagina principala » HOWTO » Monitorizați toate interogările SQL din MySQL

    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.