Авторизация  

   

Свежие обсуждения  

Читать подробнее »

   
Wait a minute, while we are rendering the calendar
   
   

Комментарии блогов  

Josef Vilka Что делать если выскакивает реклама на андроид?
28 августа 2018
Продолжение эпопеи! Очередное мое письмо производителю: ------------------------------ From: Josef V...
Josef Vilka Что делать если выскакивает реклама на андроид?
29 мая 2018
Приложение Devises маскировалось под системное, но без рута позволило удалить себя. Делаю вывод, чт...
Josef Vilka Что делать если выскакивает реклама на андроид?
28 мая 2018
Прошло уже несколько часов - реклама не появляется.. Значит - Avast - сработал!
Josef Vilka Собираем подвес по мотивам AlexMOS...
02 мая 2018
Третья ось - заработала, но не могу подобрать коэффициенты PID для нее. Надо уравновесить систему сн...
Josef Vilka Собираем подвес по мотивам AlexMOS...
01 мая 2018
Наконец-то решился и собрался с силами прикрутить третью ось к подвесу. Все было в наличии, вот врем...
   

Пользователи on-line  

   
   

× Content Management System и SEO – оптимизация

Opencart превышение нагрузки при подсчете товаров в категориях

26 фев 2017 13:45 - 26 фев 2017 13:46 #7359 от sphere_kev
Столкнулся с таким случаем, когда хостер отключил сайт за превышение нагрузки.
Имеется Opencart 1.5.5.1 и хостер сообщил, что сайт грузит сервер - при простом заходе на сайт сервер mysql грузится до 70% CPU.
Запросы вида:
Query | 0 | Sending data | SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product_to_category p2c LEFT JOIN oc_product p |
После простого отключения подсчета товаров в админке магазина - проблема вроде как ушла, но через неделю - история повторилась.
Опять запросы вида
Query | 0 | Sending data | SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_category_path cp LEFT JOIN oc_product_to_catego
- начали грузить сервер.
При одиночном заходе - еще ничего, но при индексации сервера поисковыми роботами - нагрузка по словам хостера- выходила за грани допустимой.
Посему - пришлось помимо простого отключения индексации в админке - решать вопрос с правкой скриптов..

Выключил getTotalProducts в:
catalog/controller/common/header.php
catalog/controller/product/category.php
catalog/controller/module/category.php


- заменил строку $product_total = $product->getTotalProducts($data); на $product_total = 1;

Заметно быстрее стали грузиться страницы и со слов хостера - нет превышения нагрузки.
Проблема решена.

..! You Can Make World Better !..

Вложенный файл:
Последнее редактирование: 26 фев 2017 13:46 пользователем sphere_kev.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • sphere_kev
  • sphere_kev аватар Автор темы
  • Не в сети
  • Модератор
  • Модератор
  • Небесный тихоход
Больше
27 фев 2017 10:35 #7360 от sphere_kev
Для того, чтобы было больше одной страницы в выводе категории товара - необходимо второй запрос на подсчет категорий либо оставить, либо задать в явном виде максимально возможное количество товара в файле
catalog/controller/product/category.php
ориентируемся по строчкам после запроса:
//здесь явно указываем количество - $product_total = 750; или оставляем строку ниже
$product_total = $this->model_catalog_product->getTotalProducts($data);

$results = $this->model_catalog_product->getProducts($data);

foreach ($results as $result) {
if ($result) {
$image = $this->model_tool_image->resize($result, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
} else {
$image = false;
}

..! You Can Make World Better !..

Вложенный файл:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • sphere_kev
  • sphere_kev аватар Автор темы
  • Не в сети
  • Модератор
  • Модератор
  • Небесный тихоход
Больше
Время создания страницы: 0.198 секунд
Работает на Kunena форум