Optimieren eines gespeicherten Funktionsaufrufs in SELECT- und WHERE-Klauseln

Ich habe eine SQL-Abfrage mit der folgenden Struktur:

SELECT *, storedfunc(param, table.field) as f 
FROM table 
WHERE storedfunc(param, table.field) < value 
ORDER BY storedfunc(param, table.field);

Gibt es eine Möglichkeit, dies zu optimieren, indem mehrere Funktionsaufrufe eliminiert werden? Oder führt MySQL eine solche Optimierung hinter den Kulissen durch? Tatsächlich wird die Funktion als deterministisch deklariert.

Ich muss auch erwähnen, dass die Funktionsparameter teilweise aus den Spalten der ausgewählten Tabelle stammen. Ich habe das Beispiel leicht geändert, um dies widerzuspiegeln.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage