php - Prestashop 类别页面加载速度太慢

标签 php mysql e-commerce prestashop

我已将在线商店从 1.4 更新到 1.5 最新版本,但我遇到了一些奇怪的问题。当我加载一个特定的类别页面时,其中的产品具有不同的功能,加载时间将近 10 秒。

缓慢加载类别:http://new.vikav.ee/en/103-cookingblocks (80 多种产品)

正常加载类别:http://new.vikav.ee/en/96-kitchen-sinks (300 多种产品)

9044.962 毫秒

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

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

使用文件排序 - 浏览了 2544 行

也许有人可以帮我优化这个查询,或者只是指出问题出在哪里?

最好的问候,

最佳答案

prestashop 中的大问题是糟糕的缓存管理系统,它几乎总是同时写入和读取。

但这里对您来说最好的解决方案仍然是启用和优化此缓存。尝试启用默认的,如果可以的话添加 apc。

如果您的产品不应该改变很多(比如一天内改变很多次),也请尝试将 SQL_NO_CACHE 更改为 SQL_CACHE

关于php - Prestashop 类别页面加载速度太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22473590/

相关文章:

java - 使用来自 CSV 的 Java+mySQL 插入特定字符集

mysql - Rails 4 .joins() 问题——不工作

Asp.net电子商务性能

javascript - 如何使用 jquery 或 javascript 搜索表中的多列

PHP/MySQL - 包括复数但排除单数

php - MYSQL + PHP - 检查查询问题

javascript - 将长文本从脚本浏览器 (phantomjs) 发布到 php 脚本不会超过 2kb/2400 个字符

mysql-5.6.27|重置根密码 |没有密码字段

mysql - 销售/出租电子商务的数据库设计

e-commerce - 开发其他人可以使用的购物网站的最佳方式是什么