Мне нужно использовать 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 в порядке на