I have an SQL query with the following structure:
SELECT *, storedfunc(param, table.field) as f
FROM table
WHERE storedfunc(param, table.field) < value
ORDER BY storedfunc(param, table.field);
Is there a way to optimize this eliminating several function calls? Or does MySQL perform such optimization behind the scene? In fact the function is declared as deterministic.
I need also to mention that the function params are partially from selected table’s columns. I changed the example slightly to reflect this.
Rewrite and test which one performs faster:
In MySQL, you can even write like this (warning: not standard SQL syntax):