/ / Відстежуйте всі запити SQL в MySQL

Відстежуйте всі запити SQL в MySQL

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

Перейшовши на часте використання MySQL, це було одне з перших речей, які я хотів зрозуміти, як це зробити. Як ще можна побачити фактичний код SQL, сформований WordPress або phpBB?

Перше, що нам потрібно зробити, це ввімкнути журнал запитів у MySQL. Попереджуйте, що це слід робити лише в процесі розробки ... це дійсно сповільнює роботу реєструвати кожен запит у файл.

Знайдіть і відкрийте файл конфігурації MySQL, як правило, /etc/mysql/my.cnf в Ubuntu. Шукайте розділ, в якому написано "Реєстрація та реплікація"

#
# * Реєстрація та реплікація
#
# Обидва місця обертаються за допомогою кронштейну.
# Будьте в курсі, що цей тип журналу є вбивцею продуктивності.

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

Просто скаментуйте змінну "log", щоб увімкнути журнал. Перезапустіть MySQL за допомогою цієї команди:

sudo /etc/init.d/mysql перезапустити

Тепер ми готові розпочати моніторинг запитів під час їх надходження. Відкрийте новий термінал і запустіть цю команду, щоб прокрутити файл журналу, коригуючи шлях, якщо це необхідно.

хвіст -f /var/log/mysql/mysql.log

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

Я вражений, phpbb3 має досить щільний, оптимізований SQL-код. WordPress, з іншого боку, дуже неефективний.