Анализ медленных запросов

Добрый день. В логах медленных запросов есть

            # Time: 181007  1:04:22
# User@Host: cscart[cscart] @ localhost []
# Query_time: 2.002156  Lock_time: 0.000193 Rows_sent: 12  Rows_examined: 185349
SET timestamp=1538859862;
SELECT SQL_CALC_FOUND_ROWS products.product_id, IF(shared_descr.product_id IS NOT NULL, shared_descr.product, descr1.product) as product FROM cscart_products as products  LEFT JOIN cscart_product_options_inventory as inventory ON inventory.product_id = products.product_id  LEFT JOIN cscart_product_descriptions as descr1 ON descr1.product_id = products.product_id AND descr1.lang_code = 'ru'  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_ult_product_descriptions shared_descr ON shared_descr.product_id = products.product_id  AND shared_descr.company_id = 1 AND shared_descr.lang_code = 'ru' LEFT JOIN cscart_product_popularity as popularity ON popularity.product_id = products.product_id WHERE 1  AND cscart_categories.company_id = 1 AND (CASE products.tracking   WHEN 'O' THEN inventory.amount > 0   WHEN 'B' THEN products.amount > 0   ELSE 1 END) 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 popularity.total desc, product_id ASC  LIMIT 972, 12;

Можно как то ускорить выполнение таких запросов?