Домашняя » как » Мониторинг всех SQL-запросов в MySQL

    Мониторинг всех SQL-запросов в MySQL

    Microsoft SQL Server имеет инструмент под названием Profiler, который можно использовать для мониторинга каждого SQL-запроса, который попадает в базу данных. Это очень полезно для программистов, а также администраторов баз данных для устранения неполадок точных запросов, генерируемых приложением.

    Перейдя на использование MySQL на частой основе, это было одним из первых вещей, которые я хотел выяснить, как это сделать. Как еще вы можете увидеть фактический код SQL, сгенерированный WordPress или phpBB?

    Первое, что нам нужно сделать, это включить ведение журнала запросов в MySQL. Имейте в виду, что это следует делать только в процессе разработки ... это действительно замедляет процесс записи каждого отдельного запроса в файл.

    Найдите и откройте свой файл конфигурации MySQL, обычно в Ubuntu /etc/mysql/my.cnf. Найдите раздел «Ведение журнала и репликация».

    #
    # * Ведение журнала и репликация
    #
    # Обе локации вращаются cronjob.
    # Помните, что этот тип журнала снижает производительность.

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

    Просто раскомментируйте переменную «log», чтобы включить ведение журнала. Перезапустите MySQL с помощью этой команды:

    sudo /etc/init.d/mysql restart

    Теперь мы готовы начать мониторинг запросов по мере их поступления. Откройте новый терминал и выполните эту команду, чтобы прокрутить файл журнала, скорректировав путь при необходимости..

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

    Теперь запустите ваше приложение. Вы увидите, что запросы к базе данных начинают пролетать в окне вашего терминала. (убедитесь, что на терминале включена прокрутка и история)

    Я впечатлен, у phpbb3 довольно жесткий оптимизированный код SQL. WordPress, с другой стороны, очень неэффективен.