sql >> データベース >  >> RDS >> Mysql

SELECT句とWHERE句でのストアド関数呼び出しの最適化

    どちらがより高速に実行されるかを書き直してテストします:

    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 ;
    

    MySQLでは、次のように書くこともできます(警告:標準SQLではありません 構文):

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



    1. 静的関数と潜水艦

    2. PostgreSQLクラウドベンダーロックインを回避する方法

    3. PayPalODBCドライバー

    4. MySQLクライアントアプリケーションの使用