У меня есть корзина, которая постоянно регистрирует медленные запросы, как этот ...Mysql Оптимизация медленных запросов
# Query_time: 4 Lock_time: 0 Rows_sent: 50 Rows_examined: 454403
SELECT SQL_CALC_FOUND_ROWS products.*,
descr1.product AS product,
Min(prices.price) AS price,
GROUP_CONCAT(IF(products_categories.link_type = 'M',
Concat(products_categories.category_id,
'M'), products_categories.category_id)) AS
category_ids,
cscart_seo_names.name AS seo_name
FROM cscart_products AS products
LEFT JOIN cscart_product_descriptions AS descr1
ON descr1.product_id = products.product_id
AND descr1.lang_code = 'EN'
LEFT JOIN cscart_product_prices AS prices
ON prices.product_id = products.product_id
AND prices.lower_limit = 1
INNER JOIN cscart_products_categories AS products_categories
ON products_categories.product_id = products.product_id
INNER JOIN cscart_categories
ON cscart_categories.category_id = products_categories.category_id
AND (cscart_categories.usergroup_ids = ''
OR Find_in_set(0, cscart_categories.usergroup_ids)
OR Find_in_set(1, cscart_categories.usergroup_ids))
AND cscart_categories.status IN ('A', 'H')
LEFT JOIN cscart_seo_names
ON cscart_seo_names.object_id = products.product_id
AND cscart_seo_names.TYPE = 'p'
AND cscart_seo_names.dispatch = ''
AND cscart_seo_names.lang_code = 'EN'
WHERE 1
AND products.company_id = 0
AND (products.usergroup_ids = ''
OR Find_in_set(0, products.usergroup_ids)
OR Find_in_set(1, products.usergroup_ids))
AND products.status IN ('A')
AND prices.usergroup_id IN (0, 0, 1)
GROUP BY products.product_id
ORDER BY descr1.product ASC
LIMIT 1300, 50;
Я не могу показаться, чтобы получить помощь от телеги компании о том, как ускорить этот запрос вверх , Может быть, мне нужно добавить больше индексов? Я не уверен и хотел бы получить некоторую помощь, которая бы указывала мне в правильном направлении на решение этой проблемы.
Спасибо,
Крис Эдвардс
'EXPLAIN' - ваш лучший друг – meze