Ответ Opencart MySQL очень медленно - PullRequest
0 голосов
/ 23 октября 2019

Я использую Opencart.

10M Таблица SQL продукта

Ответственный за SQL очень медленно.

Информация о моем сервере;48 CPU 64GB Память

PHP 7.3 Mariadb 10.3 Nginx + PHP-FPM

SELECT p.product_id, (SELECT AVG (рейтинг) КАК ВСЕ ОТ oc_review r1 ГДЕ r1.product_id = p.product_id ANDr1.status = '1' GROUP BY r1.product_id) AS рейтинг, (ВЫБЕРИТЕ цену ОТ oc_product_discount pd2 ГДЕ pd2.product_id = p.product_id И pd2.customer_group_id = '1' И pd2.quantity = '1' И (pd2.date_start = '0000-00-00' ИЛИ ​​pd2.date_start <СЕЙЧАС ()) И (pd2.date_end = '0000-00-00' ИЛИ ​​pd2.date_end> СЕЙЧАС ())) ЗАКАЗАТЬ по pd2.priority ASC, pd2.price ASC LIMIT 1) КАК скидка, (ВЫБЕРИТЕ цену ОТ oc_product_special ps ГДЕ ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' ИЛИ ​​ps.date_start <СЕЙЧАС ()) И (ps.date_end = '0000-00-00' ИЛИ ​​ps.date_end> СЕЙЧАС ())) ЗАКАЗАТЬ ПО ps.priority ASC, ps.price ASC LIMIT 1) КАК ОСОБЕННО ОТ oc_product_to_category p2c СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ oc_product pON (p2c.product_id = p.product_id) ВЛЕВО СОЕДИНЯЕТ oc_product_description pd ON (p.product_id = pd.product_id)СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' И p.status = '1' И p.date_available <= СЕЙЧАС () И p2s.store_id = '0' И p2c. category_id = '18' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE (pd.name) ASC LIMIT 0,48 </p>

...