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

मैसकल प्रदर्शन क्वेरी

आपको लगता है कि यह क्वेरी केवल एक बार सबक्वेरी निष्पादित करती है, परिणाम रखती है, और फिर इसकी तुलना बाहरी क्वेरी में पंक्तियों से करती है। लेकिन MySQL के साथ ऐसा नहीं है। MySQL के पास अपने अनुकूलक की बुद्धि में एक अंतर है, इसलिए यह सबक्वेरी को आश्रित सबक्वायरी के रूप में मानता है और बाहरी क्वेरी के प्रत्येक विशिष्ट मान के लिए इसे फिर से निष्पादित करता है।

इसे ठीक करने के लिए, सबक्वेरी को FROM क्लॉज में एक व्युत्पन्न तालिका के रूप में ले जाएँ। यह एक बार सबक्वायरी निष्पादित करेगा, और परिणाम को आंतरिक अस्थायी तालिका के रूप में रखेगा। फिर तालिका के दूसरे उदाहरण में शामिल हों।

SELECT `ID`, `CountryCode`, `Name`, `District`, `Population`
FROM `City`
JOIN (
    SELECT `CountryCode`, MAX(`Population`) AS `Population`
    FROM `City`
    GROUP BY `CountryCode`
) AS _max USING (`CountryCode`, `Population`);

इसके अलावा आपके पास शहर पर दो कॉलम (CountryCode,Population) . पर एक इंडेक्स होना चाहिए उस क्रम में, ताकि ग्रुप बाय क्वेरी कुशलता से चल सके।




  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. डेटाबेस में संग्रहीत संचालन का औसत समय

  5. JSON_PRETTY () - MySQL में आसान पठनीयता के लिए JSON दस्तावेज़ों को प्रारूपित करें