Подскажите, пожалуйста. Случилась неприятность с сайтом. Ниже два сообщения от хостера о проблеме и пути решения. Хотелось бы узнать, выполнение рекомендаций не повлияет на работу данного модуля?
1.
"Система мониторинга обнаружила повышенную нагрузку на хостинговый сервер , в результате выяснения причин мы обратили внимание на не корректную работу сайта technom.by, при более детальном выяснении причин было зафиксировано зацикливание сайта на приблизительно вот таких запросах
SELECT COUNT(DISTINCT p.product_id) AS total 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) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (p2c.category_id = '102')
Просим передать данную информацию разработчикам вебсайта и исправить ситуацию в ближайшее время."
2.
"В связи с резким повышением загрузки от вашего хостинга technom.by он был временно заблокирован. Как выяснилось проблема кроется в неправильной работе CMS OpenCart c базами MySQL
насколько нам стало известно основная проблема в излишне частом (рекурсивном) использовании функции getTotalProducts() в виду чего Ваши сайты медленно загружаются а часто и вообще не работают с ошибками 5ХХ. Просим передать следующую информацию разработчикам ваших вебсайтов. После внесения исправлений в программный код сайта пожалуйста оповестите нас и мы разблокируем ваши сайты.
Подсчёт количества продуктов в категориях является источником медленной загрузки страницы в OpenCart.1. Отключите в настройках подсчёт количества товаров в категориях.
2. Произведите указанную замену catalog/controller/common/header.php:
$product_total = $this->model_catalog_product->getTotalProducts($data);
$children_data[] = array(
'name' => $child['name'] . ' (' . $product_total . ')',
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
Удалите или закоментируйте $product_total:
//$product_total = $this->model_catalog_product->getTotalProducts($data);
$children_data[] = array(
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
Это уберёт основную функцию, но возможно некоторые шаблоны или плагины будут её использовать, выявить можно с помощью поиска:
model_catalog_product-> getTotalProducts ().
Если вы ищете другие ссылки на getTotalProducts () Убедитесь, что вы не удалите ссылки, которые используют подсчёт продутов для нумерации страниц, в противном случае нумерация страниц не будет работать должным образом.
Приведу пример:
catalog/controller/product/search.php в этом файле нужна это функция, чтобы работала разбивка на страницы должным образом.
$pagination->total = $product_total;
Удаление этих ссылок привела к почти 10-кратному ускорению загрузки страницы."