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

В этом запросе определенная пользователем функция myfun() будет вычисляться по три раза для каждого значения поля field или будет какая-то оптимизация? Что можно сделать для оптимизации такого запроса?
SELECT COUNT(*) FROM mytable 
WHERE myfun( field )='str1' OR myfun( field )='str2' OR myfun( field )='str3';
  • Вопрос задан
  • 114 просмотров
Решения вопроса 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'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект