Jump to content

Requete SQL qui tourne en boucle


Recommended Posts

Bonjour,

J'ai un problème avec ma base de donnée hébergée chez PHPNET.

Cela fait 3 fois en une semaine qu'ils me coupent l’accès à ma base car une requête sql tourne en boucle apparemment et que nous consommons beaucoup trop de ressources.

 

Je suis sous 1.541. serveur mutualisé premium, mysql5.

 

Voilà la requête qui pose problème apparemment. Si quelqu'un peut m'aider à trouver l'erreur ca serait génial, je suis perdue...

A priori, aucune modif autre que mise à jour des traductions et ajout du module Orlique depuis le début du pb.

(précision : impossible d'ouvrir la page "paramètres avancés - informations", ca mouline sans s'ouvrir!)

 

D'avance un grand merci.

 

# Time: 130702 16:18:49

# User@Host: p3587_1[p3587_1] @ [46.255.163.171]

# Query_time: 68.781751 Lock_time: 0.000240 Rows_sent: 100 Rows_examined: 39628224

SET timestamp=1372774729;

SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, MAX(product_attribute_shop.id_product_attribute) id_product_attribute, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`,

pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, MAX(image_shop.`id_image`) id_image,

il.`legend`, m.`name` AS manufacturer_name, cl.`name` AS category_default,

DATEDIFF(product_shop.`date_add`, DATE_SUB(NOW(),

INTERVAL 20

DAY)) > 0 AS new, product_shop.price AS orderprice

FROM `ps_category_product` cp

LEFT JOIN `ps_product` p

ON p.`id_product` = cp.`id_product`

INNER JOIN ps_product_shop product_shop

ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1)

LEFT JOIN `ps_product_attribute` pa

ON (p.`id_product` = pa.`id_product`)

LEFT JOIN ps_product_attribute_shop product_attribute_shop

ON (product_attribute_shop.id_product_attribute = pa.id_product_attribute AND product_attribute_shop.id_shop = 1 AND product_attribute_shop.`default_on` = 1)

LEFT

JOIN ps_stock_available stock

ON (stock.id_product = p.id_product AND stock.id_product_attribute = IFNULL(`product_attribute_shop`.id_product_attribute, 0) AND stock.id_shop = 1 )

LEFT JOIN `ps_category_lang` cl

ON (product_shop.`id_category_default` = cl.`id_category`

AND cl.`id_lang` = 2 AND cl.id_shop = 1 )

LEFT JOIN `ps_product_lang` pl

ON (p.`id_product` = pl.`id_product`

AND pl.`id_lang` = 2 AND pl.id_shop = 1 )

LEFT JOIN `ps_image` i

ON (i.`id_product` = p.`id_product`) LEFT JOIN ps_image_shop image_shop

ON (image_shop.id_image = i.id_image AND image_shop.id_shop = 1 AND image_shop.cover=1)

LEFT JOIN `ps_image_lang` il

ON (image_shop.`id_image` = il.`id_image`

AND il.`id_lang` = 2)

LEFT JOIN `ps_manufacturer` m

ON m.`id_manufacturer` = p.`id_manufacturer`

WHERE product_shop.`id_shop` = 1

AND cp.`id_category` = 2 AND product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog") GROUP BY product_shop.id_product ORDER BY cp.`position` ASC

LIMIT 0,100;

Link to comment
Share on other sites

Bonjour,

 

Je peux avoir accès a votre phpmyadmin par email svp. A priori il manque un ou plusieurs index ou un table est morte, car 68 secondes d’exécution le record est battu oui.

 

LIMIT 0,100;, c'est quelle partie qui fait ça, le module "dans la meme catégorie" sur la fiche produit ?Vous avez combien de produit par page dans Préférences > Produits. Sur quelle page il cherche ces 100 produits ?

 

Cordialement

Edited by Gregory Roussac (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

Désolé après avoir jeté un oeil à votre pma, je ne vois pas d’où vient le souci, il faut voir avec l’hébergeur pourquoi 2000 lignes mettent plus de 40 secondes à être parcourues. J'ai remis un index qui manquait sur une table mais cela n'a pas l'air d’être cela le souci. La il faudrait augmenter les ressources allouées à mysql.

 

ALTER TABLE `pXXXXX_1`.`ps_stock_available` ADD INDEX `product_sqlstock` ( `id_product` , `id_product_attribute` , `id_shop` , `id_shop_group` )

 

Sinon il faudrait aussi regarder en back office dans les préférences produits le nombre de produit par page (sans randomisation) et descendre le nombre de produit dans le module "dans la même catégorie".

 

Cordialement

post-1328-0-67785900-1376497505_thumb.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...