• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. Медленный запрос Brainy Filters (Opencart)

Форумы MySQL Медленный запрос Brainy Filters (Opencart)
emissar23
13.05.2016 22:42
хостинг: есть
домен: есть
Медленный запрос Brainy Filters (Opencart)
Доброго времени суток!
Появился 1 медленный запрос после включения опции атрибуты в фильтре Brainy Filters на базе Opencart 2.1.0.2. Сделал SQL запрос EXPLAIN оставил в прикрепленных. Подскажите какой нужно прописать индекс на примере ALTER TABLE какя здесь таблица ADD INDEX и куда его прописывать , на примере этого кода?

Медленный запрос:
SELECT a.attribute_group_id AS group_id, av.attribute_id AS attr_id, av.attribute_value_id AS val_id, agd.name AS group_name, ad.name AS attr_name, av.sort_order AS val_sort, av.value FROM `oc_bf_product_attribute_value` AS af INNER JOIN ( SELECT p.* FROM `oc_product` AS p INNER JOIN `oc_product_to_category` AS p2c ON (p.product_id = p2c.product_id) INNER JOIN `oc_category_path` AS cp ON (cp.category_id = p2c.category_id) WHERE cp.path_id = '59') AS p ON (af.product_id = p.product_id) INNER JOIN `oc_bf_attribute_value` AS av ON (af.attribute_value_id = av.attribute_value_id) INNER JOIN `oc_attribute` AS a ON (a.attribute_id = av.attribute_id) INNER JOIN `oc_attribute_description` AS ad ON (ad.attribute_id = a.attribute_id) INNER JOIN `oc_attribute_group` AS ag ON (ag.attribute_group_id = a.attribute_group_id) INNER JOIN `oc_attribute_group_description` AS agd ON (agd.attribute_group_id = a.attribute_group_id) INNER JOIN `oc_product_to_store` AS ps ON (p.product_id = ps.product_id) WHERE agd.language_id = '1' AND ad.language_id = '1' AND av.language_id = '1' AND ps.store_id = '0' AND p.STATUS = 1 GROUP BY av.attribute_value_id ORDER BY ag.sort_order, ag.attribute_group_id, a.sort_order, ad.name, av.sort_order, av.value
Прикрепленные файлы:
Илья
14.05.2016 00:47
хостинг: есть
домен: есть
Судя по запросу можно сделать вывод, что модуль нужно удалить. Я многое видел и много SQL запросов критиковал, но для того, что б в INNER JOIN втулить вложенный SELECT нужно быть говнокодером с большой буквы. IMHO тут индексы не помогут, нужно переписывать запрос.
emissar23
14.05.2016 01:18
хостинг: есть
домен: есть
1
Скажите, как зарубежному разработчику правильно указать(что написать) на причину?
Илья
14.05.2016 01:28
хостинг: есть
домен: есть
1
Could you please optimize this query: [текст SQL запроса]. It would be perfect if you will not use subqueries in INNER JOIN construction.
emissar23
14.05.2016 01:34
хостинг: есть
домен: есть
Спасибо!
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города