Монітор всіх SQL-запитів у MySQL
Microsoft SQL Server має інструмент, що називається Profiler, який можна використовувати для контролю кожного запиту SQL, який потрапляє до бази даних. Це надзвичайно корисно для програмістів, а також для адміністраторів баз даних для усунення точних запитів, створених програмою.
Перейшовши на використання MySQL часто, це було одне з перших речей, які я хотів зрозуміти, як це зробити. Як інакше можна побачити справжній код SQL, створений за допомогою WordPress або phpBB?
Перше, що нам потрібно зробити, це увімкнути реєстрацію запитів у MySQL. Будьте обережні, що це має бути зроблено тільки в процесі розробки… це дійсно сповільнює роботу, щоб записати кожен запит до файлу.
Знайдіть і відкрийте свій конфігураційний файл MySQL, зазвичай /etc/mysql/my.cnf на Ubuntu. Подивіться на розділ, що говорить "Вхід і реплікація"
#
# * Вхід і реплікація
#
# Обидва місця розташування повертаються за допомогою cronjob.
# Майте на увазі, що цей тип журналу - це вбивця продуктивності.log = /var/log/mysql/mysql.log
Просто розпакуйте змінну "log", щоб увімкнути реєстрацію. Перезапустіть MySQL за допомогою цієї команди:
sudo /etc/init.d/mysql перезавантаження
Тепер ми готові почати моніторинг запитів, коли вони входять. Відкрийте новий термінал і запустіть цю команду, щоб прокрутити файл журналу, змінивши шлях, якщо необхідно.
tail -f /var/log/mysql/mysql.log
Тепер запустіть програму. Ви побачите, що запити баз даних починаються у вікні вашого терміналу. (переконайтеся, що в терміналі ввімкнено прокрутку й історію)
Я вражений, phpbb3 має досить жорсткий, оптимізований код SQL. WordPress, з іншого боку, дуже неефективний.