Задать вопрос

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

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

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

Похожие вопросы