Измерить время исполнения запроса в MySQL с помощью PROFILES

Программирование Базы данных Измерить время исполнения запроса в MySQL с помощью PROFILES

Помечено: , ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 1 неделя, 1 день назад.

  • Автор
    Сообщения
  • #5416
    @admin

    Еще раз вернемся к теме измерения скорости исполнения чего-либо. Ранее я уже рассказал о том, как измерить скорость исполнения участка кода на C/C++, а сейчас перейду немножко в другую степь, а именно к базам данных. Расскажу и покажу, как легко измерить время исполнения запроса к базе не выходя из консоли MySQL и не написав ни одной строчки кода.

    Такую чудесную возможность нам дает инструмент профилирования в MySQL. В этой заметке я не буду углубляться в тонкости его использования, просто пробегусь по верхам и покажу как вытащить основную информацию о запросах к базе данных.

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

    Первым делом нужно включить инструмент профилирования. Все команды выполняются напрямую из консоли mysql, напомню, как в нее войти.

    mysql -u root -p

    После этого включаем профилирование.

    set profiling=1

    С текущего момента информация о запросах будет логироваться, давайте ее получим.

    Измерить время исполнения запроса

    Профилирование включено и собирает информацию, пришло время написать запрос, пусть он будет такой.

    select * from table1;

    Для того, чтобы посмотреть информацию по всем запросам, нужно прописать команду

    show profiles;

    И мы получим в ответ вот такую таблицу, в которой располагаются идентификатор нашего запроса, время его исполнения и сам запрос.

    show profiling

    Для того, чтобы посмотреть детальную информацию о конкретном запросе, можно вызвать ее по ID следующим образом

    show profile for query 1;

    Другая информация о запросах

    Кроме скорости исполнения запроса, можно вывести дополнительные сведения, например, размеры используемых свопов(swap). Добавляем нужный параметр в команду

    show profile swaps for query 1;

    В таблице с выводом появится дополнительный столбец.

    Доступные параметры:

    — ALL — все информация сразу
    — BLOCK IO — количество блочных I/O операций на запрос
    — CONTEXT SWITCHES — количество переключений контекстов
    — CPU — процессорное время
    — IPC — количество полученных и отправленных сообщений
    — PAGE FAULTS — количество page faults
    — SOURCE — имена функций исходного кода, которые были выполнены
    — SWAPS — размеры используемых свопов

Для ответа в этой теме необходимо авторизоваться.