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

कौन सी MySQL क्वेरी तेज है?

आपको हमेशा EXPLAIN . का उपयोग करना चाहिए यह निर्धारित करने के लिए कि आपकी क्वेरी कैसे चलेगी।

दुर्भाग्य से, MySQL आपकी सबक्वेरी को एक डिपेंडेंट क्वेरी के रूप में निष्पादित करेगा, जिसका अर्थ है कि बाहरी क्वेरी में प्रत्येक पंक्ति के लिए सबक्वेरी चलाई जाएगी। आपको लगता है कि MySQL यह पता लगाने के लिए पर्याप्त स्मार्ट होगा कि सबक्वायरी एक सहसंबद्ध सबक्वायरी नहीं है और इसे केवल एक बार चलाएगा, हां, यह अभी तक स्मार्ट नहीं है।

तो, MySQL छात्रों में सभी पंक्तियों के माध्यम से स्कैन करेगा, प्रत्येक पंक्ति के लिए सबक्वायरी चलाएगा, और बाहरी क्वेरी पर किसी भी इंडेक्स का उपयोग नहीं करेगा।

क्वेरी को जॉइन के रूप में लिखने से MySQL को इंडेक्स का उपयोग करने की अनुमति मिल जाएगी, और निम्न क्वेरी इसे लिखने का सबसे अच्छा तरीका होगा:

SELECT COUNT(*) AS count
FROMstudents s
JOIN classes c
  ON c.id = s.classes_id
  AND c.departments_id = 1
WHERE s.status = 1

यह निम्नलिखित सूचकांकों का उपयोग करेगा:

students(`status`)
classes(`id`, `departements_id`) : multi-column index


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अपलोड की गई फ़ाइलों को कहाँ संग्रहीत करें (ध्वनि, चित्र और वीडियो)

  2. MySQL में समूहीकृत रैंकिंग कैसे करें

  3. MySQL 5.7 से MySQL 8 में अपग्रेड करने के लिए टिप्स

  4. MySQL group_concat के बराबर प्रेस्टो

  5. मूल्यों की स्टोर सूची (जैसे रुचियां)