Jump to content
Sign in to follow this  
sadist

Сильно начала тормозить загрузка страницы товара. Нужна помощь.

Recommended Posts

Сайт: pyn.com.ua

 

Была старая версия движка ocstore 1.5.2.1

Одновился до ocstore 1.5.5.1.2

 

Обновил следующие модули:

  • OpenCatMenu - Визуальный конструктор меню категорий
  • Простая регистрация и заказ Simple

Был установлен Seopro и потом seogen от freelancer. 

 

Все было ок, но в один момент начала сильно глючить загрузка страницы товара ( раза в 4 дольше обычного) 

Обратился к хостеру. Получил следующий ответ: 

 

В данном случае происходят долгие MYSQL запросы в базу данных.
Например, больше секунды занимает запрос:

SELECT DISTINCT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '8' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '2015-01-14 08:09:00') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '2015-01-14 08:09:00')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '8' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '2015-01-14 08:09:00') AND (ps.date_end = '0000-00-00' OR ps.date_end > '2015-01-14 08:09:00')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= '2015-01-14 08:09:00' AND p2s.store_id = '0' GROUP BY p.product_id ORDER BY p.date_added DESC, LCASE(pd.name) DESC LIMIT 0,4

 
Также, есть запрос который повторяется многократно и в нём меняется только cp.path_id:

SELECT COUNT(DISTINCT p.product_id) AS total FROM category_path cp LEFT JOIN product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN product p ON (p2c.product_id = p.product_id) LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= '2015-01-14 08:09:00' AND p2s.store_id = '0' AND cp.path_id = '446'

Можно проставить индексы на все таблицы, к которым идут запросы SELECT, JOIN и UPDATE.
С данным вопросом необходимо обратиться в компанию или к специалисту, которые занимаются оптимизацией сайтов.
Можно предоставить им файл strace.log, который поможет локализовать проблему.
 
 
Был еще 1 ответ от хостера: 

Здравствуйте. Данная проблема связана с тем, что opencart пытается каждый раз посчитать количество товаров для каждой категории. Проблема решается или отключением отображения количества товаров или комментированием кода в скриптах сайта.
Закоментаровал вызов подсчета товаров в файле
kovaly@ares:~/pyn/public_html [0] $ vim catalog/controller/common/header.php
строки 124 и 128
kovaly@ares:~/pyn/public_html [0] $ vim catalog/controller/product/category.php
строки 202 и 206
kovaly@ares:~/pyn/public_html [0] $ vim catalog/controller/module/category.php
строки 202 и 206

Изменил движок таблиц на InnoDB, что должно сказаться на снижении нагрузки на Базу данных.
ALTER TABLE product_to_store ENGINE=InnoDB;
ALTER TABLE category_path ENGINE=InnoDB;
ALTER TABLE product_to_category ENGINE=InnoDB;
ALTER TABLE product ENGINE=InnoDB;
ALTER TABLE product_description ENGINE=InnoDB;

Добавил индексы
kovaly_andr@ares.beget.ru[kovaly_andr]> alter table url_alias add index (`keyword`);
kovaly_andr@ares.beget.ru[kovaly_andr]> alter table url_alias add index (`query`);

Текущая нагрузка на базу данных превышает допустимую в 20 раз. На данные момент у Вас использовано 49000 секунд из 2500 доступных. Если снижения нагрузки на БД не произойдет, администраторами может быть установлен кеширующий шаблон ограничивающий количество обращений (ответ сервера отдается из кеша) к сайту и как следствие снижающий нагрузку на БД.

 

Пожалуйста, у кого есть возможность - подскажите где искать проблему.

Спасибо!

 

Share this post


Link to post
Share on other sites

Подсчёт количества товаров включен?

Меню категорий слева стандартное?

Share this post


Link to post
Share on other sites

Подсчёт количества товаров включен?

Меню категорий слева стандартное?

В 3 спойлере хостер мне ответил, что закоментил подсчет кол-ва товаров.

Слева стоит нестандартное меню категорий. Установлен модуль "OpenCatMenu - Визуальный конструктор меню категорий".

Share this post


Link to post
Share on other sites

Спасибо, я учту для себя этот модуль. Но проблемы со скоростью загрузки появились недавно и их явно создает какой-то модуль.

Ваш модуль значительно ускорит работу, но не решит существующую проблему.

 

 если не сложно - посмотрите пожалуйста на ответ хостера, может сможете что-то подсказать.

Share this post


Link to post
Share on other sites

Если ответ новый, то стоило его сюда отдельно дописать, а не добавлять в первое сообщение.

Поставьте debugger и посмотрите причины

https://opencartforum.com/topic/19017-%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D1%87%D0%B8%D0%BA-%D0%B4%D0%BB%D1%8F-opencart-debugger/

Share this post


Link to post
Share on other sites

Спасибо, я учту для себя этот модуль. Но проблемы со скоростью загрузки появились недавно и их явно создает какой-то модуль.

Ваш модуль значительно ускорит работу, но не решит существующую проблему.

 

 если не сложно - посмотрите пожалуйста на ответ хостера, может сможете что-то подсказать.

Именно эту проблему  и решает модуль. Можно комплексно запилить ваш магазин - пишите в личку.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.