Jump to content

Edit History

Lorem Ipsum

Lorem Ipsum

Bonjour,

Presta V 1.7.6.7, ps_facetedsearch V 3.5.0 (avant de me dire qu'il faut update, j'aimerai savoir d'où ça vient)

Pour le site d'un client, nous avons nos log de requêtes lente gavé de cette requête :

SELECT fp.id_feature, fp.id_feature_value, COUNT(DISTINCT p.id_product) c FROM 
(
	SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, pl.name 
	FROM ps_product p 
	LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) 
	LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) 
	LEFT JOIN ps_stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1  AND sa.id_shop_group = 0 ) 
	INNER JOIN ps_product_lang pl ON (p.id_product = pl.id_product AND pl.id_shop = 1 AND pl.id_lang = 1) 
	INNER JOIN ps_category_product cp ON (p.id_product = cp.id_product) 
	INNER JOIN ps_category c ON (cp.id_category = c.id_category AND c.active=1) 
	INNER JOIN ps_product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE)
	LEFT JOIN ps_feature_product fp ON (p.id_product = fp.id_product) 
	LEFT JOIN ps_feature_product fp_1 ON (p.id_product = fp_1.id_product) 
	LEFT JOIN ps_feature_product fp_2 ON (p.id_product = fp_2.id_product) 
	LEFT JOIN ps_feature_product fp_3 ON (p.id_product = fp_3.id_product) 
	LEFT JOIN ps_feature_product fp_4 ON (p.id_product = fp_4.id_product) 
	LEFT JOIN ps_feature_product fp_5 ON (p.id_product = fp_5.id_product) 
	WHERE ((fp.id_feature_value=16)) AND ((fp_1.id_feature_value=62)) AND ((fp_2.id_feature_value=66)) AND ((fp_3.id_feature_value=80)) AND ((fp_4.id_feature_value=98)) AND ((fp_5.id_feature_value=99)) AND p.visibility IN ('both', 'catalog') AND c.nleft>=283 AND c.nright<=284 AND ps.id_shop='1' GROUP BY p.id_product
) p 
INNER JOIN ps_feature_product fp ON (p.id_product = fp.id_product) 
LEFT JOIN ps_feature_product fp_1 ON (p.id_product = fp_1.id_product) 
LEFT JOIN ps_feature_product fp_2 ON (p.id_product = fp_2.id_product) 
LEFT JOIN ps_feature_product fp_3 ON (p.id_product = fp_3.id_product) 
LEFT JOIN ps_feature_product fp_4 ON (p.id_product = fp_4.id_product) 
LEFT JOIN ps_feature_product fp_5 ON (p.id_product = fp_5.id_product) 
LEFT JOIN ps_feature_product fp_6 ON (p.id_product = fp_6.id_product) 
WHERE ((fp.id_feature=1)) AND ((fp_1.id_feature_value=16)) AND ((fp_2.id_feature_value=62)) AND ((fp_3.id_feature_value=66)) AND ((fp_4.id_feature_value=80)) AND ((fp_5.id_feature_value=98)) AND ((fp_6.id_feature_value=99)) 
GROUP BY fp.id_feature_value;

Je n'arrive pas à identifier exactement d'où sort cette requête.

Mon exploration du code m'a amené au fichier "modules/ps_facetedsearch/tests/php/FacetedSearch/Adapter/MySQLTest.php" par ce qu'il n'y a que là que je trouve "SUM(sa.quantity)" par exemple.

Si ça vient bien de là, comment le désactiver? Je ne tiens pas à faire tourner des tests unitaire sur la base de prod et encore moins sur le serveur de prod. Ca impacte les perf de nos autres sites.

Une idée?

Lorem Ipsum

Lorem Ipsum

Bonjour,

Presta V 1.7.6.7, ps_facetedsearch V 3.5.0 (avant de me dire qu'il faut update, j'aimerai savoir d'où ça vient)

Pour le site d'un client, nous avons nos log de requêtes lente gavé de cette requête :

SELECT fp.id_feature, fp.id_feature_value, COUNT(DISTINCT p.id_product) c FROM 
(
	SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, pl.name 
	FROM ps_product p 
	LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) 
	LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) 
	LEFT JOIN ps_stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1  AND sa.id_shop_group = 0 ) 
	INNER JOIN ps_product_lang pl ON (p.id_product = pl.id_product AND pl.id_shop = 1 AND pl.id_lang = 1) 
	INNER JOIN ps_category_product cp ON (p.id_product = cp.id_product) 
	INNER JOIN ps_category c ON (cp.id_category = c.id_category AND c.active=1) 
	INNER JOIN ps_product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE)
	LEFT JOIN ps_feature_product fp ON (p.id_product = fp.id_product) 
	LEFT JOIN ps_feature_product fp_1 ON (p.id_product = fp_1.id_product) 
	LEFT JOIN ps_feature_product fp_2 ON (p.id_product = fp_2.id_product) 
	LEFT JOIN ps_feature_product fp_3 ON (p.id_product = fp_3.id_product) 
	LEFT JOIN ps_feature_product fp_4 ON (p.id_product = fp_4.id_product) 
	LEFT JOIN ps_feature_product fp_5 ON (p.id_product = fp_5.id_product) 
	WHERE ((fp.id_feature_value=16)) AND ((fp_1.id_feature_value=62)) AND ((fp_2.id_feature_value=66)) AND ((fp_3.id_feature_value=80)) AND ((fp_4.id_feature_value=98)) AND ((fp_5.id_feature_value=99)) AND p.visibility IN ('both', 'catalog') AND c.nleft>=283 AND c.nright<=284 AND ps.id_shop='1' GROUP BY p.id_product
) p 
INNER JOIN ps_feature_product fp ON (p.id_product = fp.id_product) 
LEFT JOIN ps_feature_product fp_1 ON (p.id_product = fp_1.id_product) 
LEFT JOIN ps_feature_product fp_2 ON (p.id_product = fp_2.id_product) 
LEFT JOIN ps_feature_product fp_3 ON (p.id_product = fp_3.id_product) 
LEFT JOIN ps_feature_product fp_4 ON (p.id_product = fp_4.id_product) 
LEFT JOIN ps_feature_product fp_5 ON (p.id_product = fp_5.id_product) 
LEFT JOIN ps_feature_product fp_6 ON (p.id_product = fp_6.id_product) 
WHERE ((fp.id_feature=1)) AND ((fp_1.id_feature_value=16)) AND ((fp_2.id_feature_value=62)) AND ((fp_3.id_feature_value=66)) AND ((fp_4.id_feature_value=80)) AND ((fp_5.id_feature_value=98)) AND ((fp_6.id_feature_value=99)) 
GROUP BY fp.id_feature_value;

Je n'arrive pas à identifier exactement d'où sort cette requête.

Mon exploration du code m'a amené au fichier "modules/ps_facetedsearch/tests/php/FacetedSearch/Adapter/MySQLTest.php" par ce qu'il n'y a que là que je trouve "SUM(sa.quantity)" par exemple.

Si ça vient bien de là, comment le désactiver? Je ne tiens pas à faire tourner des tests unitaire sur la base de prod et encore moins sur le serveur de prod. Ca impacte les perf de nos autres sites.

Une idée?

×
×
  • Create New...