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

    Монітор всіх 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, з іншого боку, дуже неефективний.