Привет всем. нужно помощь по оптимизации opencart 2.1, будет около 50000 товаров и 700 категорий. Нагрузил магазины тестовыми товарами около 60000 тысяч. И нужно по максу ускорить его работу. А первое что жалуется в журнале медленных запросов , такой запрос:
# Time: 160823 13:33:31
# User@Host: admin_moto[admin_moto] @ localhost []
# Query_time: 6.475727 Lock_time: 0.000153 Rows_sent: 0 Rows_examined: 3433933
SET timestamp=1471959211;
SELECT
`c`.`parent_id`,
`c`.`category_id`,`cd`.`name`,
(
SELECT
COUNT(DISTINCT `p`.`product_id`) AS total
FROM
`oc_product_to_category` AS `p2c`
INNER JOIN
`oc_product` AS `p`
ON
`p`.`product_id` = `p2c`.`product_id`
INNER JOIN
`oc_category_path` AS `cp`
ON
`cp`.`category_id` = `p2c`.`category_id`
INNER JOIN
`oc_product_to_store` AS `p2s`
ON
`p2s`.`product_id` = `p`.`product_id` AND `p2s`.`store_id` = 0
INNER JOIN
`oc_product_description` AS `pd`
ON
`pd`.`product_id` = `p`.`product_id` AND `pd`.`language_id` = 4
WHERE `p`.`date_available` <= NOW() AND `p`.`status` = '1' AND ((LCASE(`pd`.`name`) LIKE '%aaasimq%') OR LCASE(`p`.`model`) = 'aaasimq ' OR LCASE(`p`.`sku`) = 'aaasimq ' OR LCASE(`p`.`upc`) = 'aaasimq ' OR LCASE(`p`.`ean`) = 'aaasimq ' OR LCASE(`p`.`jan`) = 'aaasimq ' OR LCASE(`p`.`isbn`) = 'aaasimq ' OR LCASE(`p`.`mpn`) = 'aaasimq ' OR LCASE(`pd`.`tag`) LIKE '%aaasimq %') AND `cp`.`path_id` = `c`.`category_id`
) AS `aggregate`
FROM
`oc_category` AS `c`
INNER JOIN
`oc_category_description` AS `cd`
ON
`cd`.`category_id` = `c`.`category_id` AND `cd`.`language_id` = '4'
INNER JOIN
`oc_category_to_store` AS `c2s`
ON
`c`.`category_id` = `c2s`.`category_id` AND `c2s`.`store_id` = '0'
WHERE
`c`.`status` = '1' AND `c`.`parent_id` = 0
GROUP BY
`c`.`category_id`
HAVING
`aggregate` > 0
ORDER BY
`c`.`sort_order` ASC, `cd`.`name` ASC;
Нужно как-то оптимизировать его, это при поиске товара, и когда наверное нажимаешь его открыть , выполняется этот запрос. Думаю кому-то тоже это нужно, не только мне