Saya pikir ini dapat diuji menggunakan fungsi sleep(),
misalnya lihat demo ini: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;
Waktu eksekusi kedua kueri adalah sekitar 3000 mdtk ( 3 detik ).
Ada 3 record dalam tabel, dan untuk setiap record query hanya tidur selama 1 detik,
jadi ini berarti ekspresi dievaluasi hanya sekali untuk setiap rekaman, bukan dua kali.