Колега з 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 Використання профілів шоу. Перегляньте список операторів, які виконуються на сервері. (запит id, витрачений час, оператор).
2.6 Використовуйте профіль шоу для запиту до інформації про виконання ID формулювання. Тут ми аналізуємо заяву за ідентифікацією 6. (Аналіз: виберіть sql_no_cache count(*) з system_user, де вік > 20).
2.7 Отримайте споживання процесора та блокування виводу.
2.8 Отримання додаткової інформації. можна отримати, виконавши "SHOW PROFILE *** FOR QUERY n". Адреса для довідки: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|