Чистый opencart-3.0.3.7-rs Переношу товары с другого сайта. Атрибуты и категории через Exprort/Import, товары - прямым копированием всех таблиц oc_product* через csv При первом же после импорта открытии главной страницы - хостер банит за max_queries_per_hour Fatal error: Uncaught Exception: Error: User 'user_user' has exceeded the 'max_queries_per_hour' resource (current value: 1)<br />Error No: 1226<br />SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '215' in /blabla/system/library/db/mysqli.php:41 Stack trace: #0 /blabla/system/library/db.php(45): DB\MySQLi->query('SELECT COUNT(DI...') #1 /blabla/catalog/model/catalog/product.php(513): DB->query('SELECT COUNT(DI...') #2 /blabla/storage/atl2/modification/system/engine/loader.php(248): M in /blabla/system/library/db/mysqli.php on line 41 Fatal error: Uncaught Exception: Error: User 'user_user' has exceeded the 'max_queries_per_hour' resource (current value: 1)<br />Error No: 1226<br />REPLACE INTO `oc_session` SET `session_id` = 'bd36ca030015c2ef46f988d126', `data` = '{\"user_id\":\"1\",\"user_token\":\"uFJuAPruXpHHZSLoFr3IESi5Pgo4fniO\",\"language\":\"ru-ru\",\"currency\":\"RUB\",\"install\":\"AC5t5q5jNO\"}', `expire` = '2021-05-20 00:34:48' in /blabla/system/library/db/mysqli.php:41 Stack trace: #0 /blabla/system/library/db.php(45): DB\MySQLi->query('REPLACE INTO `o...') #1 /blabla/system/library/session/db.php(27): DB->query('REPLACE INTO `o...') #2 /blabla/system/library/session.php(81): Session\DB->write('bd36ca030015c2e...', Array) #3 [internal function]: Session->close() #4 {main} thrown in /blabla/system/library/db/mysqli.php on line 41 36 000 товаров с описаниями. oc_product_description - 62Мб 2 000 категорий 3 000 характеристик. oc_product_attribute - 24Мб Немало, конечно. Но я уже не один раз сталкивался с подобными по размеру сайты на Опенкарт - никаких проблем не было. Тем более таких.
Причём тут хостинг? Хостинг нормальный, не первый год пользуюсь и с таким ни разу не сталкивался. Проблема в конкретном SQL запросе, который почему-то жрёт все ресурсы
В опенкарте много подобных запросов, но какой бы не был запрос, если с ним не справляется хост, то виноват он, а не опенкарт.
Вы хотите сказать, что хостинги из первого десятка этого списка чем то принципиально отличаются в работе с MySQL? Повторяюсь: не первый год сижу уже на этом хостинге. Нагрузка на БД больше 20 секунд изредка бывает только при импорте большого количества товаров (порядка тех же самых десятков тысяч) Здесь же при открытии зависает на 2 минуты - после чего его банят. То есть проблема именно в самой БД. Могут в таблицах с товарами возникнуть какие то циклические ссылки?
Потому что у вас по умолчанию включен подсчет кол-ва товаров в категории, а это нагрузка. Если есть нагрузка, есть ресурсы хостинга. В ответ на нагрузку, нужно и запросы оптимизировать и кешировать и нормальный хостинг. Я джино обхожу стороной, сколько я с ним намучался. Собственно как и рег ру... одно мучение.
Мда, надо же было так протормозить. Ведь точно же вижу, что рекурсия... Чтобы два раза не вставать - посоветуйте фильтр для такого количества товаров.