Domača » kako » Nadzor vseh SQL poizvedb v MySQL

    Nadzor vseh SQL poizvedb v MySQL

    Microsoftov SQL Server ima orodje, imenovano Profiler, ki ga lahko uporabite za spremljanje vsake poizvedbe SQL, ki doseže bazo podatkov. To je zelo koristno za programerje in skrbnike baz podatkov, da odpravijo natančne poizvedbe, ki jih generira aplikacija.

    To je bila ena od prvih stvari, ki sem si želela ugotoviti, kako to storiti. Kako drugače lahko vidite dejansko kodo SQL, ki jo generira WordPress ali phpBB?

    Prva stvar, ki jo bomo morali storiti, je vklop beleženja poizvedb v MySQL. Bodite opozorjeni, da je to treba storiti samo v razvoju… resnično upočasnjuje stvari, da zabeleži vsako posamezno poizvedbo v datoteko.

    Poiščite in odprite konfiguracijsko datoteko MySQL, običajno /etc/mysql/my.cnf na Ubuntu. Poiščite razdelek, ki pravi »Beleženje in podvajanje«

    #
    # * Beleženje in podvajanje
    #
    # Oba mesta se vrtita za cronjob.
    # Zavedajte se, da je ta vrsta dnevnika uspešnica.

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

    Preprosto razčlenite spremenljivko »log«, da vklopite beleženje. S tem ukazom znova zaženite MySQL:

    sudo /etc/init.d/mysql znova zaženite

    Zdaj smo pripravljeni začeti spremljati poizvedbe, ko pridejo. Odprite nov terminal in zaženite ta ukaz, da se pomaknete po datoteki dnevnika, po potrebi prilagodite pot.

    tail -f /var/log/mysql/mysql.log

    Zdaj zaženite aplikacijo. Videli boste, da se poizvedbe baze podatkov začnejo v vašem terminalskem oknu. (poskrbite, da imate na terminalu omogočeno pomikanje in zgodovino)

    Navdušen sem, phpbb3 ima precej tesno, optimizirano kodo SQL. WordPress pa je zelo neučinkovit.