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

MySQL सेल्फ जॉइन क्वेरी को ऑप्टिमाइज़ करें

आप एक अनुक्रमणिका खो रहे हैं। अपनी क्वेरी का विश्लेषण करने के लिए EXPLAIN का उपयोग करने का प्रयास करें, इससे आपको बहुत मदद मिलेगी।

समाधान सरल है, यहाँ यह है:http://sqlfiddle.com/#! 2/56deb/1/0

आपको एक इंडेक्स जोड़ने की जरूरत है जिसमें उस स्टेटमेंट में उपयोग किए गए कॉलम शामिल हों, ताकि उनका उपयोग किया जा सके:

KEY `night_of_2` (`night_of`,`student_id`,`check_class`)

इसके अलावा, आपको शामिल होने पर अनुक्रमणिका के उपयोग को बाध्य करने की आवश्यकता है, क्योंकि आप स्वयं तालिका में शामिल हो रहे हैं:

JOIN checks checks2

फोर्स इंडेक्स (night_of_2 ) ON ( check1.night_of =check2.night_of )

(यदि कोई बेहतर तरीका है तो मैं इसके बारे में जानना चाहूंगा) :)

सादर,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Centos 7 में mysqld.service के लिए कार्य विफल रहा

  2. libmemcached पथ?

  3. कॉलम नाम पाने के लिए MySQL क्वेरी?

  4. नेटवर्क पर JDBC के साथ MySQL से कनेक्ट करें

  5. मैं तालिका को कैसे अपडेट करूं (MYSQL)