Профайлинг запросов MySql в PHP

июнь 8 , 2015
Метки:

Часто в нашем приложении мы хотим узнать, сколько времени выполняется тот или иной запрос. Например, мы хотим отлавливать медленные запросы и уведомлять об нас этом. Как это делается - в этой статье

Задача: есть php-скрипт, выполняющий sql-запросы. Нам необходимо узнать время выполнения каждого запроса. В примере будем использовать объект mysqli. Делаем это так:

    // Поключаемся к базе данных
    $dbConn = new mysqli('localhost', 'user', 'password', 'dbname');
    // Устанавливаем режим профайлинга
    $dbConn->query('set profiling=1');
    // Выполняем наш запрос
    $dbConn->query('select * from goods');
    $data_profile = $dbConn->query('show profiles');
    // Получаем данные о профайлинге
    $row = $data_profile->fetch_array();
    // Отменяем режим профайлинга
    $dbConn->query('set profiling=0');
    
    // Выведем данные на экран
    echo '
';
    print_r($row);
    echo '
'; // Получим время выполнения и строку sql-запроса $duration = $row['Duration']; $query = $row['Query']; printf('Запрос: %s. Время выполнения - %s', $query, $duration);
Метки:
Заходите в группу в контакте - https://vk.com/webdevkin
Анонсы статей, обсуждения интернет-магазинов, vue, фронтенда, php, гита.
Истории из жизни айти и обсуждение кода.
Как Вам статья? Оцените!