Оптимизируется ли многократный вызов функции в MySQL запросе?
В этом запросе определенная пользователем функция myfun() будет вычисляться по три раза для каждого значения поля field или будет какая-то оптимизация? Что можно сделать для оптимизации такого запроса?
SELECT COUNT(*) FROM mytable
WHERE myfun( field )='str1' OR myfun( field )='str2' OR myfun( field )='str3';
Попробуйте так, может быть быстрее если есть индекс
SELECT (
SELECT COUNT(*) cnt FROM mytable WHERE field = myrevfunc('str1') +
SELECT COUNT(*) cnt FROM mytable WHERE field = myrevfunc('str2') +
SELECT COUNT(*) cnt FROM mytable WHERE field = myrevfunc('str3')
) AS count_all;