Керування файлами cookie, які використовуються для реклами, таких як персоналізація реклами, ремаркетинг і аналіз ефективності реклами.
|
a-lex
14.05.2019 12:41
0
|
Столкнулся с тем что поставил на пакет "Лучший SSD" opencart c кастомной темой. Испытывал большие проблемы с перегрузом -> нашел косяки в теме -> оптимизировал тему.. но ошибки превышения запросов(процессорного времени остались). Переключился на стандартную тему opencart 3x и то же сайт падает и потребляет достаточно ресурсов.
Кто-то сталкивался с таким? Ошибка: Warning: mysqli::__construct(): (HY000/1226): User DB_name'' has exceeded the 'max_user_connections' resource (current value: 45) in ../system/library/db/mysqli.php on line 7Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in ../system/library/db/mysqli.php on line 10Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in ../system/library/db/mysqli.php on line 10 Смотрел по форума на всякий случай сменил SQL движок MyISAM (Default) на InnoDB но по дефолту на этом пакете MyISAM. Просто первый раз сталкиваюсь с такой проблемой.... |
|
Roman P.
14.05.2019 15:57
0
|
Судя по ошибке, Сайт устанавливает слишком много подключений к БД и тем самым упирается в лимит. Возможно в магазине слишком много позиций либо используются тяжелые плагины
|
|
a-lex
14.05.2019 16:37
0
|
Из плагинов экспорт/импорт и доп. описание категорий) Товаров 2300 шт. Я вот почитал что там сам опенкарт 3й требователен к бд. По коду смотрю там запросы в цикле выводит.
|
|
rudenko
14.05.2019 16:42
0
|
Из плагинов экспорт/импорт и доп. описание категорий) Товаров 2300 шт. Я вот почитал что там сам опенкарт 3й требователен к бд. По коду смотрю там запросы в цикле выводит.© a-lex Судя по ошибке - у вас 45 одновременных соединений с БД, это количество соответсвует огромному проекту, с десятками тысяч посетителей. Или же лажа с каким-то запросом, который слишком долго выполняется. Выполняйте команду SHOWFULL processlist |
|
a-lex
15.05.2019 17:24
0
|
Посмотрел:
Вот такие вот запросы умирают SELECT p.product_id, (SELECT AVG(rating)AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status ='1'GROUPBY r1.product_id)AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id ='1'AND pd2.quantity ='1'AND((pd2.date_start ='0000-00-00'OR pd2.date_start < NOW())AND(pd2.date_end ='0000-00-00'OR pd2.date_end > NOW()))ORDERBY pd2.priority ASC, pd2.price ASCLIMIT1)AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id ='1'AND((ps.date_start ='0000-00-00'OR ps.date_start < NOW())AND(ps.date_end ='0000-00-00'OR ps.date_end > NOW()))ORDERBY ps.priority ASC, ps.price ASCLIMIT1)AS special FROM oc_category_path cp LEFTJOIN oc_product_to_category p2c ON(cp.category_id = p2c.category_id) LEFTJOIN oc_product p ON(p2c.product_id = p.product_id) LEFTJOIN oc_product_description pd ON(p.product_id = pd.product_id) LEFTJOIN oc_product_to_store p2s ON(p.product_id = p2s.product_id) WHERE pd.language_id ='2'AND p.status ='1'AND p.date_available <= NOW()AND p2s.store_id ='0'AND cp.path_id ='129' GROUPBY p.product_id ORDERBY p.date_added DESC, LCASE(pd.name)DESC LIMIT0,20 SELECTCOUNT(DISTINCT p.product_id)AS total FROM oc_category_path cp LEFTJOIN oc_product_to_category p2c ON(cp.category_id = p2c.category_id) LEFTJOIN oc_product p ON(p2c.product_id = p.product_id) LEFTJOIN oc_product_description pd ON(p.product_id = pd.product_id) LEFTJOIN oc_product_to_store p2s ON(p.product_id = p2s.product_id) WHERE pd.language_id ='2'AND p.status ='1'AND p.date_available <= NOW()AND p2s.store_id ='0'AND cp.path_id ='157 |
|
rudenko
17.05.2019 17:15
0
|
Вот такие вот запросы умирают© a-lex Запросы кривые. Выполните эти два запроса с приставкой EXPLAIN и бросьте скриншоты, может где индекса нехватает. |
|
a-lex
20.05.2019 14:16
0
|
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 = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '157 этот запрос победил |
|
a-lex
20.05.2019 14:23
0
|
cdn.adm.tools/forum_message/0497/07/l2ZKa1pize6eDA.jpg - а вот что по второму
|
|
a-lex
20.05.2019 15:20
0
|
SELECTDISTINCT*, pd.name AS name, p.image, m.name AS manufacturer,(SELECT price FROM" . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id ='" . (int)$this->config->get('config_customer_group_id') . "'AND pd2.quantity ='1'AND((pd2.date_start ='0000-00-00'OR pd2.date_start < NOW())AND(pd2.date_end ='0000-00-00'OR pd2.date_end > NOW()))ORDERBY pd2.priority ASC, pd2.price ASCLIMIT1)AS discount,(SELECT price FROM" . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id ='" . (int)$this->config->get('config_customer_group_id') . "'AND((ps.date_start ='0000-00-00'OR ps.date_start < NOW())AND(ps.date_end ='0000-00-00'OR ps.date_end > NOW()))ORDERBY ps.priority ASC, ps.price ASCLIMIT1)AS special,(SELECT points FROM" . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND pr.customer_group_id ='" . (int)$this->config->get('config_customer_group_id') . "')AS reward,(SELECT ss.name FROM" . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id ='" . (int)$this->config->get('config_language_id') . "')AS stock_status,(SELECT wcd.unit FROM" . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id ='" . (int)$this->config->get('config_language_id') . "')AS weight_class,(SELECT lcd.unit FROM" . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id ='" . (int)$this->config->get('config_language_id') . "')AS length_class,(SELECT AVG(rating)AS total FROM" . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status ='1'GROUPBY r1.product_id)AS rating,(SELECTCOUNT(*)AS total FROM" . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status ='1'GROUPBY r2.product_id)AS reviews, p.sort_order FROM" . DB_PREFIX . "product p LEFTJOIN" . DB_PREFIX . "product_description pd ON(p.product_id = pd.product_id)LEFTJOIN" . DB_PREFIX . "product_to_store p2s ON(p.product_id = p2s.product_id)LEFTJOIN" . DB_PREFIX . "manufacturer m ON(p.manufacturer_id = m.manufacturer_id)WHERE p.product_id ='" . (int)$product_id . "'AND pd.language_id ='" . (int)$this->config->get('config_language_id') . "'AND p.status ='1'AND p.date_available <= NOW()AND p2s.store_id ='" . (int)$this->config->get('config_store_id') Есть вот ещё такой монструозный запрос получения продукта.... |
|
milanov.store
22.06.2021 01:38
0
|
"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 = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '157 этот запрос победил" Как победили? |
Тема закрита.