Привет форумчане
Столкнулся я с проблемой, что при использовании фильтра на opencart, где есть много товаров (в моем случае 40000 товаров и куча категорий), загрузка страницы происходила у меня 21с при том, что и кеш включен и все возможные оптимизации были сделаны.
Сам мегафильтр делает запрос:
SELECT REPLACE(REPLACE(`text`, '', ''), '', '') AS `text`, `attribute_id`, COUNT( DISTINCT `tmp`.`product_id` ) AS `total` FROM( SELECT `pa`.`attribute_id`,`p`.`product_id`,`pa`.`text` FROM `oc_product` AS `p` INNER JOIN `oc_product_attribute` AS `pa` ON `pa`.`product_id` = `p`.`product_id` AND `pa`.`language_id` = '1' INNER JOIN `oc_product_to_store` AS `p2s` ON `p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0 INNER JOIN `oc_product_to_category` AS `p2c` ON `p2c`.`product_id` = `p`.`product_id` WHERE `p`.`date_available` <= NOW() AND `p`.`status` = '1' AND `p2c`.`category_id` IN(1191) ) AS `tmp` GROUP BY `text`, `attribute_id`;
Оказалось, что у продукт_атрибутов надо создать еще две колонки которых по умолчанию в OC нету.
После таких манипуляций время сократилось с 21с до 1с
Я бы предложил автору при установке данного модуля делать проверку на наличие данных таблиц и при их отсутсвии создавать их.
Не за что
Хотя я пользователь нуленного и может в последней версии это пофиксили, но если нет, то вот так вот
Я не горжусь, что пользуюсь нулем, но финансы на данный момент не позволяют приобрести данный модуль. Если магазин начнет приносить доход, то обязуюсь приобрести лицензию.