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.