Jump to content

Prestashop query is slow. How can I edit this query.


Emrah Gunes

Recommended Posts

/classes/Category.php:1056   the file is here. This sql is running very slow how can I fix it? Bu sorguyu kaldırdıktan sonra 21347 adet sorgu, 276 düşüyor

"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`, 
  pl.`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(
      "2021-09-29 00:00:00", INTERVAL 365 DAY
    )
  ) > 0 AS new, 
  product_shop.price AS orderprice 
FROM 
  `pr_category_product` cp 
  LEFT JOIN `pr_product` p ON p.`id_product` = cp.`id_product` 
  INNER JOIN pr_product_shop product_shop ON (
    product_shop.id_product = p.id_product 
    AND product_shop.id_shop = 1
  ) 
  LEFT JOIN `pr_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 pr_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 `pr_category_lang` cl ON (
    product_shop.`id_category_default` = cl.`id_category` 
    AND cl.`id_lang` = 2 
    AND cl.id_shop = 1
  ) 
  LEFT JOIN `pr_product_lang` pl ON (
    p.`id_product` = pl.`id_product` 
    AND pl.`id_lang` = 2 
    AND pl.id_shop = 1
  ) 
  LEFT JOIN `pr_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 `pr_image_lang` il ON (
    image_shop.`id_image` = il.`id_image` 
    AND il.`id_lang` = 2
  ) 
  LEFT JOIN `pr_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` 
WHERE 
  product_shop.`id_shop` = 1 
  AND cp.`id_category` = 163 
  AND product_shop.`active` = 1 
  AND product_shop.`visibility` IN ("both", "catalog") 
ORDER BY 
  cp.`position` ASC 
LIMIT 
  0, 1000000
"

Edited by Emrah Gunes (see edit history)
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...