Вообщем нужна помощь в уменьшении нагрузки на базу данных, идет двойная нагрузка на хост и он ругается. На сайт около 10 тысяч товаров. Выдает вот что SELECT DISTINCT pa.text, a.`attribute_id`, ad.`name`, ag.attribute_group_id, agd.name as attribute_group_name FROM `oc_product_attribute` pa LEFT JOIN oc_attribute a ON(pa.attribute_id=a.`attribute_id`) LEFT JOIN oc_attribute_description ad ON(a.attribute_id=ad.`attribute_id`) LEFT JOIN oc_attribute_group ag ON(ag.attribute_group_id=a.`attribute_group_id`) LEFT JOIN oc_attribute_group_description agd ON(agd.attribute_group_id=ag.`attribute_group_id`) LEFT JOIN oc_product p ON(p.product_id=pa.`product_id`) LEFT JOIN oc_product_to_category p2c ON(p.product_id=p2c.product_id) LEFT JOIN oc_product_to_store p2s ON(p.product_id=p2s.product_id) WHERE p.status = NNN AND p.date_available <= NOW() AND p2s.store_id =NNN AND p2c.category_id = NNN AND pa.language_id = NNN AND ad.language_id = NNN AND agd.language_id = NNN ORDER BY ag.sort_order, agd.name, a.sort_order, ad.name, pa.text При том оптимизацию вопросов выполняли
Мне интересно, что такое оптимизация запосов? И еще.. А что по этому поводу сказал автор фильтра-про. Это часть его запросов. И все индексы там есть
chukcha, chukcha, Я написал фрилансу в личку жду что он скажет, по поводу оптимизации запросов- Так мне ответили в поддержке хоста что надо оптимизировать запросы к базе данных.
Я не знаю, что там у вас в модели, но код у фильтра про в модели закрыт... p.product_id - индекс есть pa PRIMARY KEY (`product_id`,`attribute_id`,`language_id`) И т.д Да, сам запрос не из легких но и оптимизировать его не получится Цель запроса - собрать атрибуты из товаров в определенной категории. Или атрибутов много, или товаров в категории В принципе можно немного переделать сам запрос, но код под кубом.. и даст ли оно приращение в скорости - сложно сказать
Так и как решать вопрос? удалять товар? Если фильтр про отключать сайт летает, получается что фильтр не тащит. Тогда может поставить Мегафильтр про? Я не прогер просто ищу ответы у спецов.
Пробуйте другие фильтры В принципе, если бы я писал бы фильтр, то я бы использовал нормализованные таблицы - и хранил бы их отдельно Т.е. сначала бы из заполнял, а уж потом пользовал в фильтре, и ... мне кажется, что в последних версиях фильтрпро так и сделано
chukcha, Да я думал уже об этом, просто уже наконец то надо запустить сайт а не одно так другое. Подождем что скажет ФРиланс если что обновлю лицуху последней версии, либо пробую мегафильтр. Просто было превышение такое уже прогер мне оптимизировал и сказал что больше не будет мучать и вот опять( В логах ошибок еще выдает вот такое 2016-06-05 22:15:36 - PHP Notice: Undefined index: name in /home/p335421/public_html/catalog/controller/module/microdatapro.php(1180) : eval()'d code(2) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code on line 2 2016-06-05 22:15:36 - PHP Notice: Undefined index: description in /home/p335421/public_html/catalog/controller/module/microdatapro.php(1180) : eval()'d code(2) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code on line 2 2016-06-05 22:15:36 - PHP Notice: Undefined index: name in /home/p335421/public_html/catalog/controller/module/microdatapro.php(1180) : eval()'d code(2) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code on line 2 2016-06-05 22:15:36 - PHP Notice: Undefined index: description in /home/p335421/public_html/catalog/controller/module/microdatapro.php(1180) : eval()'d code(2) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code on line 2
Что он вам там наоптимизировал - неизвестно нужно смотреть на месте Ноу учтите, это не дешево.. А с другой стороны, если у вас на этапе запуска такие нагрузки, то что будет в релизе? Бегите от хостера или меняйте тариф Ведь товаров у вас не так много, около 10000
Ну, из моего опыта, фильтр про (без нормализации) при оптимизированной базе нормально работает в магазине на 14 тысяч товаров на шаред хостинге. И опять же из опыта: уже при трёх тысячах товаров, без оптимизации сайт еле открывается. Какие-то странные ошибки. По нормальному, нигде в коде не может быть eval (разве что, автор этого модуля микроданных совсем уж криворукий). Обычно eval в бекдорах встречается.