Мониторинг всех 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, с другой стороны, очень неэффективен.