次の構造のSQLクエリがあります。
SELECT *, storedfunc(param, table.field) as f
FROM table
WHERE storedfunc(param, table.field) < value
ORDER BY storedfunc(param, table.field);
これを最適化して、いくつかの関数呼び出しを排除する方法はありますか?それとも、MySQLはそのような最適化を舞台裏で実行しますか?実際、関数は決定論的として宣言されています。
また、関数paramsは、選択したテーブルの列から部分的に取得されていることにも言及する必要があります。これを反映するために、例を少し変更しました。