У нас есть запрос на 30 секунд. Когда мы убираем этот HAVING условия, это занимает 1 секунду:Как ускорить HAVING, который использует LIKE% ...%
HAVING (group_concat(DISTINCT service.service ORDER BY
service.service ASC SEPARATOR ",") like "%translation%")
ORDER by fqa_value DESC
LIMIT 0,10;
Поля service.service является ENUM с одним из пунктов «перевод».
Есть ли более эффективный способ построить это HAVING без создания строки, разделенных запятыми, а затем искать в нем в виде текста, что-то вроде этого:
HAVING ("translation" IN (DISTINCT service.service ORDER BY service.service))
ORDER by fqa_value DESC
LIMIT 0,10;
Вы можете дать полный sql. – Nick
Любые улучшения, если вы удаляете отдельные и/или заказываете? – Mihai
Я подозреваю, что 'DISTINCT' и' ORDER BY' - это то, как агрегат вызывается в 'SELECT', а то, что используется в предложении' HAVING', должно быть одинаковым. –