Мне пришлось написать несколько запросов, чтобы показать конкретные продукты на моей домашней странице. Однако они ненормально длинные и должны быть кэшированы.
Это пример запроса, выполненного с моей домашней страницы:
$bogof = Mage::getModel('catalog/product')
->addAttributeToSelect('*')
->addAttributeToFilter('status',1)
->addAttributeToFilter('promocode',10)
->addAttributeToFilter('visibility',array('neq' => 1));
$bogof->getSelect()->order('rand()');
$bogof = $bogof->getFirstItem();
Как видите, мне нужны те, чтобы получить случайный продукт, который занимает много времени.
В основном этот запрос извлекает информацию из magento_catalog_product_entity, magento_catalog_product_entity_int и magento_catalog_product_entity_varchar через 6 объединений.
То, что я заметил, это то, что на странице категории Magento получает информацию из magento_catalog_product_entity, magento_catalog_category_product_index, magento_catalog_product_index_price и magento_cataloginventory_stock_item, что в 6 раз быстрее, чем в 6 раз, чем в 6 раз быстрее, чем объединение
Как я могу использовать один и тот же тип запросов для получения моих продуктов? Я пытался использовать ResourceModel безуспешно.
Заранее спасибо.
(Пожалуйста, прости мой английский)