Jump to content

Mal rendimiento al cambiar los atributos del producto


RobertoSV

Recommended Posts

Hola, tengo una web con un rendimiento pésimo al cambiar los atributos del producto en el front, tarda unos 13 segundos.

Después de revisar he visto que el problema son las consultas de esa parte a la BBDD que tardan entre 1 y 2 segundos y al haber varias se acumulan.

Las consultas son como esta

SELECT ag.`id_attribute_group`,
       ag.`is_color_group`,
       agl.`name` AS group_name,
       agl.`public_name` AS public_group_name,
       a.`id_attribute`,
       al.`name` AS attribute_name,
       a.`color` AS attribute_color,
       product_attribute_shop.`id_product_attribute`,
       IFNULL(stock.quantity, 0) AS quantity,
       product_attribute_shop.`price`,
       product_attribute_shop.`ecotax`,
       product_attribute_shop.`weight`,
       product_attribute_shop.`default_on`,
       pa.`reference`,
       product_attribute_shop.`unit_price_impact`,
       product_attribute_shop.`minimal_quantity`,
       product_attribute_shop.`available_date`,
       ag.`group_type`
FROM `g6j1_product_attribute` pa
INNER JOIN g6j1_product_attribute_shop product_attribute_shop ON (product_attribute_shop.id_product_attribute = pa.id_product_attribute
                                                                  AND product_attribute_shop.id_shop = 1)
LEFT JOIN g6j1_stock_available stock ON (stock.id_product = `pa`.id_product
                                         AND stock.id_product_attribute = IFNULL(`pa`.id_product_attribute, 0)
                                         AND stock.id_shop = 1
                                         AND stock.id_shop_group = 0)
LEFT JOIN `g6j1_product_attribute_combination` pac ON (pac.`id_product_attribute` = pa.`id_product_attribute`)
LEFT JOIN `g6j1_attribute` a ON (a.`id_attribute` = pac.`id_attribute`)
LEFT JOIN `g6j1_attribute_group` ag ON (ag.`id_attribute_group` = a.`id_attribute_group`)
LEFT JOIN `g6j1_attribute_lang` al ON (a.`id_attribute` = al.`id_attribute`)
LEFT JOIN `g6j1_attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group`)
INNER JOIN g6j1_attribute_shop attribute_shop ON (attribute_shop.id_attribute = a.id_attribute
                                                  AND attribute_shop.id_shop = 1)
WHERE pa.`id_product` = 5
  AND al.`id_lang` = 2
  AND agl.`id_lang` = 2
GROUP BY id_attribute_group,
         id_product_attribute
ORDER BY ag.`position` ASC,
         a.`position` ASC,
         agl.`name` ASC
LIMIT 0,
      25

En principio parece que las tablas y los índices están bien, ¿alguien sabe que puede pasar o como optimizarlo?

Gracias

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