SQL-запросы к базе данных Magento

В CMS Magento (Мадженто) есть хорошая возможность показать-проверить-“продебажить” SQL-запросы к базе данных.

В Magento все очень просто 🙂

Для начала откроем файл lib/varien/Db/Adapter/Pdo/Mysql.php и посмотрим на класс Varien_Db_Adapter_Pdo_Mysql.

Это PHP-класс Magento для работы с базой данных MySQL.

Поменяем настройки(значения переменных) в этом классе.

protected $_debug = true;

так подключим “дебаг”(отладку) – логированние SQL-запросов к базе данных Magento.

Перезагрузим страницу сайта на Magento.

И проверим файл var/debug/pdo_mysql.log , файл-лог должен создаться в папке  var/debug. Если файла нет или пустой, проверьте права для папки/файла.

Также проверьте переменную $_debugFile

protected $_debugFile = 'var/debug/pdo_mysql.log';

где указывается адрес для лог-файла, можно также указать другое название для лог-файла.

Если файл лога создался то увидите список SQL запросов.

Как видно запросов не так уж много.

Потому как в лог-файл Magento записались только те SQL запросы,  время для которых было потрачено больше чем 0.05 секунды.

Проверьте переменную $_logQueryTime,
минимальное время исполнения SQL запросов которые будут записаны в лог-файл.
Изменим $_logQueryTime, установим значение 0 – будут записыватся все SQL запросы.

protected $_logQueryTime = 0;

Попробуем снова открыть сайт на Magento. Файл лога стал больше.

Также можно изменить переменную $_logAllQueries, записывать в лог-файл все SQL запросы Magento,
при включении будет игнорировать значение для переменной $_logQueryTime.

protected $_logAllQueries = true;

Также можно узнать какие php-классы Magento делают SQL запросы к базе данных Magento. Переменная $_logCallStack позволит логировать так называемый stack.

protected $_logCallStack = true;

Снова перезагрузим страничку, и увидим какой  бо👀👀👀👀льшой  лог файл….