Domovská » jak » Sledujte všechny dotazy SQL v MySQL

    Sledujte všechny dotazy SQL v MySQL

    Microsoft SQL Server má nástroj s názvem Profiler, který můžete použít ke sledování každého dotazu SQL, který narazí na databázi. To je mimořádně užitečné pro programátory i administrátory databází při odstraňování přesných dotazů generovaných aplikací.

    Když jsem často používali MySQL, bylo to jedno z prvních věcí, které jsem chtěl zjistit, jak postupovat. Jak jinak můžete vidět skutečný kód SQL vygenerovaný pomocí WordPress nebo phpBB?

    První věc, kterou budeme muset udělat, je zapnout protokolování dotazů v MySQL. Buďte varováni, že by se to mělo dělat jen ve vývoji ... skutečně zpomaluje to, aby se zaznamenal každý dotaz do souboru.

    Najděte a otevřete konfigurační soubor MySQL, obvykle /etc/mysql/my.cnf na Ubuntu. Hledejte sekci s názvem "Protokolování a replikace"

    #
    # * Protokolování a replikace
    #
    # Obě umístění se otáčí cronjobem.
    # Uvědomte si, že tento typ protokolu je výkonný vrah.

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

    Stačí odkomentovat proměnnou "log" pro zapnutí protokolování. Restartujte MySQL pomocí tohoto příkazu:

    sudo /etc/init.d/mysql restart

    Nyní jsme připraveni začít sledovat dotazy při příchodu. Otevřete nový terminál a spusťte tento příkaz, abyste mohli procházet soubor protokolu, případně upravit cestu.

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

    Nyní spusťte aplikaci. Zobrazí se dotazy databáze, které začínají létat v terminálovém okně. (ujistěte se, že na terminálu máte aktivován rolování a historie)

    Jsem ohromen, phpbb3 má poměrně těsný, optimalizovaný kód SQL. WordPress je naopak velmi neefektivní.