MySQL Order By, если условие замедляет запрос - PullRequest
1 голос
/ 11 октября 2019

Мне нужно использовать order by с условием if, для его запроса потребовалось около 5 секунд. Можем ли мы улучшить порядок mysql с помощью условия if if?

Мой запрос

SELECT product.title
FROM product
INNER JOIN menu
    ON product.menu_id = menu.id
INNER JOIN order
    ON menu.order_id = order.id
WHERE
    product.type = 2
ORDER BY
    (if(order.id=9455,1,0)) DESC,
    (if(product.subcategory=149,1,0)) DESC,
   (if(product.category=123,1,0)) DESC,
    product.id DESC
LIMIT 6;

Все конкретные столбцы уже проиндексированы, поэтому я думаю, что это не проблема индекса. Возвращается ноль секунд, если я уберу условие if в порядке на

...