Jump to content

problème de bande passante dans les requêtes MYSQL...


Recommended Posts

Bonjour,

 

l'hébergeur m'a alerté sur un problème de bande passante très élevée lors de certaines requêtes MYSQL comme celle ci-dessous :

 

> # Query_time: 2.837770 Lock_time: 0.000124 Rows_sent: 1 Rows_examined: 16229844

> SET timestamp=1334057720;

> SELECT p.*, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, p.`ean13`,

> i.`id_image`, il.`legend`, t.`rate`

> FROM `ps_product` p

> LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 2)

> LEFT JOIN `ps_image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)

> LEFT JOIN `ps_image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = 2)

> LEFT JOIN `ps_tax` t ON t.`id_tax` = p.`id_tax`

> WHERE (`reduction_price` > 0 OR `reduction_percent` > 0)

> AND (`reduction_from` = `reduction_to` OR (`reduction_from` <= '2012-04-10 13:35:17' AND `reduction_to` >= '2012-04-10 13:35:17'))

> AND p.`active` = 1

> AND p.`id_product` IN (

> SELECT cp.`id_product`

> FROM `ps_category_group` cg

> LEFT JOIN `ps_category_product` cp ON (cp.`id_category` = cg.`id_category`)

> WHERE cg.`id_group` = 1

> )

> ORDER BY RAND() LIMIT 1;

 

 

La version de Prestashop utilisée est la 1.3.6.0

L'hébergement est mutualisé d'où l'alerte de l'hébergeur puisque ça pénalise le MYSQL des autres clients dont les BDD se trouvent sur ce serveur.

Il s'avèrerait que la requête en exemple à pris près de 3 secondes à s'exécuter et à examiné 16229844 lignes (entre les jointures et les sous requêtes), ce qui est énorme.

De plus, ce type de requêtes se reproduisent très fréquemment dans la journée (environ une fois toutes les deux secondes), ces dernières consommant énormément de ressources.

Comment peut-on avoir Rows_examined: 16229844 ?

La boutique contient 4680 articles actifs et 186 catégories.

 

Si quelqu'un a une idée pour optimiser si besoin ?

 

D'avance merci beaucoup.

 

Cdlt,

Olivier

Link to comment
Share on other sites

  • 1 month later...

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...