У меня есть магазин, в котором у меня много товаров, более 50 000 товаров, и я пытаюсь выяснить одну из проблем с загрузкой страниц моей домашней страницы, одну из них я уже нашел (фронтенд), но теперь я проверяю Например, у меня есть различные блоки продуктов, такие как (избранные, последние продукты и продукты по категориям), поэтому, поскольку я загружаю только 8 продуктов (каждый блок) на домашней странице моего магазина, возможно, 50 000 (и он продолжает расти), это замедляет работу я думаю, так что, возможно, я смогу улучшить производительность своего кода.
Метод, который я использую для вызова продуктов, представлен ниже:
$_products = Mage::getModel('catalog/product')->getCollection();
$_products->addAttributeToSelect("*");
$_products->addFieldToFilter(
array(
array('attribute'=>'featured', 'eq'=> 1)
)
);
Есть ли способ сделать это быстрее? Или, может быть, проблема также в последних продуктах или в фильтрации продуктов по категориям?
Этот код уже создает оптимальный запрос. Попробуйте уменьшить количество выбранных полей при использовании addAttributeToSelect. Также рассмотрите возможность использования плоских таблиц для повышения производительности. (работает на> 100 тыс. каталогов). Инструменты профилировщика, такие как newrelic, могут дать вам больше информации о конкретных узких местах производительности вашего кода.
В дополнение к ответу samsonovits, я также предложил бы очистить Ваши журнальные таблицы. Посмотреть здесь: https://docs.nexcess.net/article/how-to-perform-magento-database-maintenance.html.