Tôi có một truy vấn SQL với cấu trúc sau:Tối ưu hóa một cuộc gọi chức năng lưu trữ trong điều khoản SELECT và ĐÂU
SELECT *, storedfunc(param, table.field) as f
FROM table
WHERE storedfunc(param, table.field) < value
ORDER BY storedfunc(param, table.field);
Có cách nào để tối ưu hóa này loại bỏ một số cuộc gọi chức năng? Hoặc MySQL thực hiện tối ưu hóa như vậy đằng sau hiện trường? Trong thực tế, hàm được khai báo là xác định.
Tôi cũng cần đề cập đến các tham số chức năng một phần từ các cột của bảng đã chọn. Tôi đã thay đổi ví dụ một chút để phản ánh điều này.
là 'param' một trong bảng hoặc tham số? –