Перейти к содержанию
sadist

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

Рекомендуемые сообщения

Сайт: 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 доступных. Если снижения нагрузки на БД не произойдет, администраторами может быть установлен кеширующий шаблон ограничивающий количество обращений (ответ сервера отдается из кеша) к сайту и как следствие снижающий нагрузку на БД.

 

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

Спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поставьте 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/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.