В 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;
Снова перезагрузим страничку, и увидим какой бо👀👀👀👀льшой лог файл….