kussberg
kussberg

Reputation: 559

Prestashop category page loading too slow

i have updated the online shop from 1.4 to 1.5 latest version but i have some weired problem. WHen i am loading a specific category page, where products have different features, it loads almost 10 seconds.

Slow loading category: http://new.vikav.ee/en/103-cookingblocks (80+ products)

Normally loading category: http://new.vikav.ee/en/96-kitchen-sinks (300+ products)

9044.962 ms

SELECT SQL_NO_CACHE 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 30 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` = 6
                                    AND cl.id_shop = 1)
LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product`
                                   AND pl.`id_lang` = 6
                                   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` = 6)
LEFT JOIN `ps_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
WHERE product_shop.`id_shop` = 1
  AND cp.`id_category` = 103
  AND product_shop.`active` = 1
  AND product_shop.`visibility` IN ("both",
                                    "catalog")
GROUP BY product_shop.id_product
ORDER BY p.`date_add` ASC LIMIT 0,25

in /var/www/web1080/html/vikav/classes/Category.php:659

USING FILESORT - 2544 rows browsed

Maybe someone can help me optimize this query or just point, where the problem is?

Best regards,

Upvotes: 2

Views: 1753

Answers (1)

Lliw
Lliw

Reputation: 407

The big problem in prestashop is the bad cache managing system, which is writing and reading almost always at the same time.

But the best solution for you here is still to enable and optimize this cache. Try to enable the default one, and add apc if you can.

Also try to change SQL_NO_CACHE to SQL_CACHE if your product are not supposed to change a lot (like many times in a single day)

Upvotes: 1

Related Questions