Колега от CleverCode наскоро препоръча инструмент за анализ на SQL оператори в MySQL, профилиране, и установи, че този инструмент е много добър, който може точно да анализира къде точно е отделено време за SQL оператори по време на процеса на заявки. CleverCode обобщава това тук и го споделя с вас.
1 Въведение
Query Profiler на MySQL е много удобен инструмент за диагностичен анализ на заявки, чрез който можете да получите консумацията на множество ресурси в целия процес на изпълнение на заявка, като CPU, IO, IPC, SWAP и др., както и появата на PAGE FAULTS, CONTEXT SWITCHE и др., както и местоположението на всяка функция, извикана от MySQL в изходния файл по време на изпълнението на заявката.
MySQL версия 5.0.37 или по-нова поддържа функцията за отстраняване на грешки PROFILING, която ви позволява да разберете детайлите на ресурсите, консумирани от SQL операторите. Тъй като изисква извикване на функцията getrusage() на системата, може да се използва само на платформи от класове Linux/Unix, а не на Windows. Освен това, ПРОФИЛИРАНЕТО е за обработка на процеси, а не нишки, и други приложения на сървъра могат да повлияят на резултатите от дебъгването, затова този инструмент е подходящ за дебъгване по време на разработка, и ако искате да дебъгвате в продукционна среда, трябва да обърнете внимание на неговите ограничения.
2 Експлоатация
2.1 Провери дали профилът е активиран, по подразбиране е изключен.
2.2 Активирайте профилирането. Профилирането на променливи е потребителска променлива, която трябва да бъде активирана отново всеки път.
2.3 Изпълнете следните оператори: За да се избегне предварително съхраняване на SQL в QCACHE, се препоръчва да се принуди операторът SELECT да не извършва откриване на QCACHE при изпълнение на SQL. Това ви позволява да предоставите точността на анализа.
2.4 УпотребаЗаявка за профил на шоуНай-новиятИнформация за изпълнение на изявлението。 (Анализ: изберете sql_no_cache брой(*) от system_user, където възрастта > 20)
2.5 Използване на профили на шоута. Вижте списък с оператори, които се изпълняват на сървъра. (заявка id, изразено време, твърдение).
2.6 Използвайте show profile, за да поискате информацията за изпълнение на ID на формулировката. Тук анализираме твърдението с ID 6. (Анализ: изберете sql_no_cache брой(*) от system_user, където възрастта > 20).
2.7 Вземи CPU и блокирай консумацията на входни изходи.
2.8 Получаване на допълнителна информация. може да се получи чрез изпълнение на "ПОКАЖИ ПРОФИЛ *** ЗА ЗАЯВКА n". Референтен адрес: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|