Автор Тема: Очень долгая загрузка карточки товара  (Прочитано 859 раз)

17 Августа 2013, 17:44:06
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте! Столкнулся с проблемой очень долгой загрузки карточки товара в магазине.

Сайт - rodix.ru

Хостинг sprinthost

Рекомпиляция шаблона-  нет
Кэш - да
ККК - да
файловое кэширование - да (глубина 1)


Грузится очень долго. Я.маркет отключает магазин из-за того, что считает его недоступным.

Как решить проблему?

17 Августа 2013, 18:09:27
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22126
  • Репутация: +17110/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Самый простой способ - сменить хостинг.
Или провести тестирование и выявить, что замедляет сайт.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
17 Августа 2013, 20:35:08
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Перевел на Джино, не помогло.

Спринтхост ответил:
Цитировать
Некоторые страницы открываются достаточно долго, поэтому могут возникать ошибки при индексации.
Мы провели диагностику и выяснили что при попытке зайти на страницу в каталоге происходит длительная загрузка. Это происходит из-за того, что при переходе на страницу   выполняется длительные запросы к базе данных(15-30сек), например:

SELECT DISTINCT p.id_product, p.*, fp.id_feature, ps.`quantity` AS sales, sp.`id_specific_price`, sp.`price` AS specific_price, sp.`reduction` AS specific_reduction, c.`id_category`, c.`id_parent`, pa.`id_product_attribute`, 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`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`, cl.`name` AS category_default, DATEDIFF( now(), p.date_add) as newnumdays, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL 2000 DAY)) > 0 AS new,
                            (p.`price` * IF(t.`rate`,((100 + (t.`rate`))/100),1)) AS orderprice       
                    FROM `ps_category_product` cp
                    LEFT JOIN `ps_product` p ON p.`id_product` = cp.`id_product`
                    LEFT JOIN `ps_specific_price` sp ON sp.`id_product` = p.`id_product`
                    LEFT JOIN `ps_product_sale` ps ON ps.`id_product` = p.`id_product`
            LEFT JOIN `ps_feature_product` fp ON fp.`id_product` = p.`id_product`
            LEFT JOIN `ps_category` c ON c.`id_category` = cp.`id_category`
                    LEFT JOIN `ps_product_attribute` pa ON (p.`id_product` = pa.`id_product` AND default_on = 1)
                    LEFT JOIN `ps_category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = 6)
                    LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 6)
                    LEFT JOIN `ps_image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
                    LEFT JOIN `ps_image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = 6)
                    LEFT JOIN `ps_tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
                                                               AND tr.`id_country` = 177
                                                                  AND tr.`id_state` = 0)
                LEFT JOIN `ps_tax` t ON (t.`id_tax` = tr.`id_tax`)
                    LEFT JOIN `ps_tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = 6)
                    LEFT JOIN `ps_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`      
                    WHERE  p.`active` = 1 AND p.`id_category_default` IN (
                                    SELECT p.`id_category_default`
                                    FROM `ps_product` p
                                    WHERE p.`id_product` = 8354785
                            ) AND p.id_product != 8354785 GROUP BY p.id_product ORDER BY p.date_add LIMIT 0,12

Мы рекомендуем обратится к разработчикам по вопросу оптимизации запросов. Так же рекомендуем произвести индексацию базы данных - это должно ускорить скорость обработки запросов.


Как это можно исправить?

17 Августа 2013, 22:34:56
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
На сайте то ничего нет, чтоб нагружать.
Базу чистить нужно, похоже там много ошибок накопилось.
Цитировать
id_product = 8354785
Этож сколько работает сайт, чтоб столько товаров прошло?
Похоже это не id товара, что переделывалось?
Кеширования запросов к бд нет.
20 Августа 2013, 15:36:31
Ответ #4
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проблема оказалась в модуле "Товары этой категории", который грузил страницу