Самый быстрый способ получить коллекцию товаров по атрибуту

У меня есть магазин, в котором у меня много товаров, более 50 000 товаров, и я пытаюсь выяснить одну из проблем с загрузкой страниц моей домашней страницы, одну из них я уже нашел (фронтенд), но теперь я проверяю Например, у меня есть различные блоки продуктов, такие как (избранные, последние продукты и продукты по категориям), поэтому, поскольку я загружаю только 8 продуктов (каждый блок) на домашней странице моего магазина, возможно, 50 000 (и он продолжает расти), это замедляет работу я думаю, так что, возможно, я смогу улучшить производительность своего кода.

Метод, который я использую для вызова продуктов, представлен ниже:

$_products = Mage::getModel('catalog/product')->getCollection();
$_products->addAttributeToSelect("*");
$_products->addFieldToFilter(
array(
array('attribute'=>'featured', 'eq'=> 1)
)
);

Есть ли способ сделать это быстрее? Или, может быть, проблема также в последних продуктах или в фильтрации продуктов по категориям?

0

Решение

Этот код уже создает оптимальный запрос. Попробуйте уменьшить количество выбранных полей при использовании addAttributeToSelect. Также рассмотрите возможность использования плоских таблиц для повышения производительности. (работает на> 100 тыс. каталогов). Инструменты профилировщика, такие как newrelic, могут дать вам больше информации о конкретных узких местах производительности вашего кода.

0

Другие решения

В дополнение к ответу samsonovits, я также предложил бы очистить Ваши журнальные таблицы. Посмотреть здесь: https://docs.nexcess.net/article/how-to-perform-magento-database-maintenance.html.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector