Skip to main content

Монітор всіх SQL-запитів у MySQL

Монітор всіх SQL-запитів у MySQL

Geoffrey Carr

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

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

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

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

## * Logging and Replication## Both location gets rotated by the cronjob.# Be aware that this log type is a performance killer.

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

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

sudo /etc/init.d/mysql restart

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

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

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

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

Link
Plus
Send
Send
Pin