Оптимизируется ли многократный вызов функции в MySQL запросе?

В этом запросе определенная пользователем функция myfun() будет вычисляться по три раза для каждого значения поля field или будет какая-то оптимизация? Что можно сделать для оптимизации такого запроса?
SELECT COUNT(*) FROM mytable 
WHERE myfun( field )='str1' OR myfun( field )='str2' OR myfun( field )='str3';
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
SELECT COUNT(*) FROM mytable 
WHERE myfun( field ) IN ('str1', 'str2', 'str3');


но это все равно плохо. Лучше найти обратную функцию и использовать

SELECT COUNT(*) FROM mytable 
WHERE field IN (myrevfunc('str1'), myrevfunc('str2'), myrevfunc('str2'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы