Где формируется запрос ?

Уважаемые Гуру, подскажите:

1. из какого модуля / скрипта может формироваться данный запрос ?

2. физический смысл этого запроса ?

SELECT DISTINCT pf5.feature_id, pf5.feature_value_id FROM shop_product p 

JOIN shop_product_features pf1 ON p.id = pf1.product_id AND pf1.feature_id = 15 

JOIN shop_product_features pf2 ON p.id = pf2.product_id AND pf2.feature_id = 24 

JOIN shop_product_features pf3 ON p.id = pf3.product_id AND pf3.feature_id = 20 

JOIN shop_product_features pf4 ON p.id = pf4.product_id AND pf4.feature_id = 21 

JOIN shop_category_products cp1 ON p.id = cp1.product_id 

JOIN shop_product_features pf5 ON p.id = pf5.product_id 

WHERE pf1.feature_value_id IN (5881) AND pf2.feature_value_id IN (736) AND pf3.feature_value_id IN (1232) AND pf4.feature_value_id IN (1216) AND p.status = 1 AND cp1.category_id IN(988);

с ув. Сергей

3 ответа

  • 1
    Сергей Журавлев 29 октября 2015 13:07 #

    Это работает фильтр в категориях товаров.

    Работает очень долго, можно его как то убыстрить ?

  • 2
    Сергей Журавлев 29 октября 2015 15:30 #

    нет, лучше оптимизировать запрос

    на локальной машине при 350.000 зап. в таблице shop_product_features работает 27 сек, и выдает 24 строки

    причём, если убираю одно условие фильтра - то выборка происходит за 10 сек

    если ещё одно то за 2 сек

    машина: i7, 2.8Гц, 4Гб; Windows7х64


    ---

    Убрал дистинкт, оказывается он убирает дубли у более 20 млн зап - вот на этом всё стопорится

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите