Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Синтаксис на MySQL UPDATE с множество таблици, използващи клауза WHERE

  2. Как да актуализирам две таблици в едно изявление?

  3. Миграция на Laravel – нарушение на ограничението за целостта:1452 Не може да се добави или актуализира дъщерен ред:ограничение за външен ключ не успява

  4. MySQL най-добрият начин за съхранение на дълги низове

  5. MySQL:Кога са наистина необходими Flush Privileges в MySQL?