sql >> Databáze >  >> RDS >> Mysql

Optimalizace uloženého volání funkce v klauzulích SELECT a WHERE

Přepište a otestujte, který z nich funguje rychleji:

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 ;

V MySQL můžete dokonce psát takto (varování:ne standardní SQL syntaxe):

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



  1. Deset hlavních důvodů pro migraci z Oracle na PostgreSQL

  2. GeoDjango v systému Windows:Nelze najít knihovnu GDAL / OSError:[WinError 126] Zadaný modul nebyl nalezen

  3. Mysql Group V 24hodinových intervalech

  4. Chyba převodu dat hromadného načítání (zkrácení)