Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या MySQL क्लॉज द्वारा SELECT और HAVING/GROUP BY के बीच सामान्य उप-अभिव्यक्तियों को समाप्त करता है

मुझे लगता है कि स्लीप() फ़ंक्शन का उपयोग करके इसका परीक्षण किया जा सकता है, उदाहरण के लिए इस डेमो पर एक नज़र डालें: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 एमएस (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. mysql टाइमस्टैम्प को वास्तविक दिनांक और समय में परिवर्तित करें?

  3. फैंटम रीड कैसे तैयार करें?

  4. MYSQL क्वेरी / दिनांक 1 सप्ताह से अधिक पुरानी (UTC में सभी डेटाटाइम्स)

  5. एक MySQL ट्रिगर में तालिका अद्यतन को रोकने में त्रुटि फेंको