Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tối ưu hóa một lệnh gọi hàm được lưu trữ trong mệnh đề SELECT và WHERE

Viết lại và kiểm tra xem cái nào hoạt động nhanh hơn:

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

SELECT *
FROM
  ( SELECT *, storedfunc(param, table.column) AS f 
    FROM table 
  ) AS tmp
WHERE f < value 
ORDER BY f ;

Trong MySQL, bạn thậm chí có thể viết như thế này ( cảnh báo:SQL không chuẩn cú pháp):

SELECT *, storedfunc(param, table.column) AS f 
FROM table 
HAVING f < value 
ORDER BY f ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quyền truy cập PHP MySql (1045) bị từ chối đối với người dùng

  2. Số MAX là bao nhiêu nếu tôi lưu trữ int (255) trong MySQL?

  3. mysql - sau khi chèn bỏ qua lấy khóa chính

  4. Chọn phạm vi ngày MySQL với date_format

  5. Không thể đưa ra các câu lệnh thao tác dữ liệu với executeQuery ()