Коллега из CleverCode недавно порекомендовал инструмент для анализа sql-операторов в MySQL — профилирование, и обнаружил, что этот инструмент очень хорош, он может точно анализировать конкретное время, затраченное на SQL-операторы в процессе запроса. CleverCode резюмирует это здесь и делится с вами.
1 Введение
Query Profiler MySQL — это очень удобный инструмент для анализа диагностики запросов, с помощью которого можно получить потребление нескольких ресурсов во всём процессе выполнения запроса, таких как CPU, IO, IPC, SWAP и т.д., а также обнаружение ошибок страницы, переключения контекста и т.д., а также определить местоположение каждой функции, вызванной MySQL, в исходном файле во время выполнения запроса.
MySQL версии 5.0.37 и более позднее поддерживает функцию отладки PROFILING, которая позволяет понимать детали ресурсов, потребляемых SQL-операторами. Поскольку требуется вызов функции getrusage() системы, её можно использовать только на платформах классов Linux/Unix, а не на Windows. Кроме того, PROFILING предназначен для обработки процессов, а не потоков, и другие приложения на сервере могут влиять на результаты отладки, поэтому этот инструмент подходит для отладки в процессе разработки, и если вы хотите отладить в производственной среде, обратите внимание на его ограничения.
2 Эксплуатация
2.1 Проверьте, включён ли профиль, он по умолчанию отключён.
2.2 Включите профилирование. Профилирование переменных — это пользовательская переменная, которую необходимо вновь включать каждый раз.
2.3 Выполните следующие операторы: Чтобы избежать предварительного хранения SQL в QCACHE, рекомендуется заставить оператор SELECT не выполнять обнаружение QCACHE при выполнении SQL. Это позволяет предоставить точность анализа.
2.4 ИспользованиеЗапрос к профилю шоуСамый свежийИнформация о выполнении оператора。 (Анализ: выберите sql_no_cache count(*) из system_user, где возраст > 20)
2.5 Использование профилей шоу. Просмотрите список операторов, выполняемых на сервере. (идентификатор запроса, потраченное время, утверждение).
2.6 Используйте профиль шоу для запроса информации о выполнении ID формулировки. Здесь мы анализируем утверждение с ID 6. (Анализ: выберите sql_no_cache count(*) из system_user, где возраст > 20).
2.7 Получите CPU и блокируйте потребление ввода-вывода.
2.8 Получение дополнительной информации. можно получить, выполнив «ПОКАЗАТЬ ПРОФИЛЬ *** ДЛЯ ЗАПРОСА n». Адрес для справки: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|