Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL премахва ли общите подизрази между клаузата SELECT и HAVING/GROUP BY

Мисля, че това може да се тества с помощта на функция sleep(),
например разгледайте тази демонстрация:http://sqlfiddle.com/#!2/0bc1b/1

Select * FROM t;

| X |
|---|
| 1 |
| 2 |
| 2 |

SELECT x+sleep(1)
FROM t
GROUP BY x+sleep(1);

SELECT x+sleep(1) As name
FROM t
GROUP BY name;

Времето за изпълнение на двете заявки е около 3000 ms (3 секунди).
Има 3 записа в таблицата и за всеки запис заявката заспива само за 1 секунда,
така че означава, че изразът се оценява само веднъж за всеки запис, а не два пъти.



  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 персонализирана глобална дефинирана променлива

  2. Използване на UUID като първичен ключ с Laravel 5

  3. Производителност VARCHAR спрямо TEXT, когато данните се побират на реда

  4. mySQL Грешка 1040:Твърде много връзки

  5. MySQL:Създаване на база данни като?