The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Профилирование запросов в MySQL"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Профилирование запросов в MySQL"  +/
Сообщение от auto_tips (ok) on 02-Мрт-10, 22:56 
Начиная с версии 5.0.37 в MySQL Community Server появился удобный инструмент для профилирования запросов - директивы "SHOW PROFILES" и "SHOW PROFILE".

Директива "SHOW PROFILES" показывает список запросов, выполненных в рамках текущей сессии и время выполнения каждого запроса. Число отображаемых запросов определяется переменной сессии profiling_history_size, которая имеет значение по умолчанию 15, максимальное 100. В список попадают все запросы кроме "SHOW PROFILES" и "SHOW PROFILE", включая синтаксически неверные. Профилирование действует в течении сессии. По завершении сессии информация профайлинга теряется.

Включаем профилирование:

   mysql> set profiling=1;
   Query OK, 0 rows affected (0.00 sec)

Через некоторое время смотрим результат:

   mysql> show profiles;
   | Query_ID | Duration   | Query
   | 2        | 0.00010300 | create table a1 (id int not null auto_increment)
   ...

Директива "SHOW PROFILE" показывает подробную информацию об этапах выполнения отдельного запроса. По умолчанию, выводится информация о последнем запросе. Для указания на конкретный запрос используется опция FOR QUERY n, где значение n соответствует значению Query_ID из списка, формируемого директивой "SHOW PROFILES".

   mysql> show profile for QUERY 2;
   | Status               | Duration |
   | (initialization)     | 0.000039 |
   | checking permissions | 0.00004  |
   | creating table       | 0.004034 |
   | After create         | 0.000294 |
   | query end            | 0.000009 |
   | freeing items        | 0.000012 |
   | logging slow query   | 0.000004 |

где Status - состояние потока, а Duration - время выполнения в секундах.

Информацию, аналогичную результату работы "SHOW PROFILE", можно получить из таблицы PROFILING базы INFORMATION_SCHEMA. Например, следующие команды являются эквивалентными:

   SHOW PROFILE FOR QUERY 2;

   SELECT STATE, FORMAT(DURATION, 6) AS DURATION FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID = 2;


Ссылки

Подробное описание синтаксиса с указанием всех возможных опций:
  http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html
Пример использования профайлинга для оптимизации сложных запросов:
  http://dev.mysql.com/tech-resources/articles/using-new-query...

URL: http://webew.ru/articles/2732.webew
Обсуждается: http://www.opennet.me/tips/info/2307.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Профилирование запросов в MySQL"  +/
Сообщение от mihasik email(ok) on 02-Мрт-10, 22:56 
столкнулся с необходимостью оптимизировать работу приложения с MySQL базой
для Postgres'a есть замечательный pgFouine
есть нечто подобное для MySQL?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Профилирование запросов в MySQL"  +/
Сообщение от jetstalker on 07-Мрт-10, 19:26 
maatkit
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Профилирование запросов в MySQL"  +/
Сообщение от Денис Юсупов email on 03-Мрт-10, 14:41 
Не знаю, но может, гугл всё же поможет?
http://www.google.com/search?hl=en&q=mysql+log+analyzer&aq=f...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру