Jump to content

Optimise the Slow Query on category Page


killerkhan

Recommended Posts

Hello,

 

I have 2409 products in one of my category. And i am sowing 52 products on one page. But whenever i am clicking on Show ALL the page fetches for a long time and then becomes blank.

 

I am on shared hosting. And the hosting is saying that the following Query is taking more than expected time.

 

SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) 
AS quantity, IFNULL(product_attribute_shop.id_product_attribute, 0) AS  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`, l.`meta_keywords`, 
pl.`meta_title`, pl.`name`, image_shop.`id_image` id_image,il.`legend` as legend, m.`name` AS manufacturer_name, cl.`name` AS category_default,DATEDIFF(product_shop.`date_add`, DATE_SUB("2016-08-06 00:00:00",
INTERVAL 0 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_shop` 
product_attribute_shop ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop=1)

LEFT JOIN ps_stock_available stock ON (stock.id_product = p.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1 AND stock.id_shop_group = 0 ) LEFT JOIN `ps_category_lang` cl ON 
(product_shop.`id_category_default` = cl.`id_category` AND cl.`id_lang` = 1 AND cl.id_shop 
= 1 ) LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 1 AND pl.id_shop = 1 )
LEFT JOIN `ps_image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=1) LEFT JOIN `ps_image_lang` il ON (image_shop.`id_image` = 
il.`id_image` AND il.`id_lang` = 1) LEFT JOIN `ps_manufacturer` m
ON m.`id_manufacturer` = p.`id_manufacturer` WHERE product_shop.`id_shop` = 1

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

 

I am using Prestashop 1.6.1.5

 

When i try to run this query in my PhpMyAdmin it takes 7 min 22 sec to give me the result. 

 

In the Forum i searched and found to remove the DATEDIFF(product_shop.`date_add`, DATE_SUB("2016-08-06 00:00:00", INTERVAL 0 DAY)) > 0 AS new,

 

But still i am getting the same result.

 

Any help is appreciated in this.

 

Thanks,

 

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