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

लेफ्ट जॉइन फ़ास्ट जॉइन या इनर जॉइन फ़ास्ट ?

निर्भर करता है; पता लगाने के लिए उन दोनों को चलाएं; फिर स्पष्टीकरण के लिए 'व्याख्या चयन' चलाएँ।

वास्तविक प्रदर्शन अंतर "वस्तुतः अस्तित्वहीन" से "काफी महत्वपूर्ण" तक हो सकता है, यह इस बात पर निर्भर करता है कि id='12345' के साथ A में कितनी पंक्तियों का B और C में कोई मिलान रिकॉर्ड नहीं है।

अपडेट करें (पोस्ट की गई क्वेरी योजनाओं के आधार पर)

जब आप इनर जॉइन का उपयोग करते हैं तो इससे कोई फर्क नहीं पड़ता (परिणाम-वार, प्रदर्शन-वार नहीं) किस तालिका से शुरू करना है, इसलिए अनुकूलक उसे चुनने का प्रयास करता है जो उसे लगता है कि सबसे अच्छा प्रदर्शन करेगा। ऐसा लगता है कि आपके पास सभी उपयुक्त पीके / एफके कॉलम पर इंडेक्स हैं और आपके पास friend_events.userid पर इंडेक्स नहीं है। या userid = '13006' . के साथ बहुत अधिक रिकॉर्ड हैं और इसका उपयोग नहीं किया जा रहा है; किसी भी तरह से अनुकूलक कम पंक्तियों वाली तालिका को "आधार" के रूप में चुनता है - इस मामले में यह zcms_users है ।

जब आप लेफ्ट जॉइन का उपयोग करते हैं तो यह करता है मामला (परिणाम-वार) किस तालिका से शुरू करना है; इस प्रकार friend_events चुना जाता है। अब क्यों उस तरह से कम समय लगता है मुझे पूरा यकीन नहीं है; मैं अनुमान लगा रहा हूँ friend_events.userid हालत मदद करता है। यदि आप उस पर एक अनुक्रमणिका (क्या यह वास्तव में varchar, btw? संख्यात्मक नहीं है?) जोड़ना चाहते हैं, तो आपका INNER JOIN अलग तरह से व्यवहार कर सकता है (और तेज़ हो सकता है)।



  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. JSON के माध्यम से Android से सर्वर पर डेटा भेजें

  3. क्या एकल SQL कथन का उपयोग करके रिकॉर्ड को एक तालिका से दूसरी तालिका में ले जाना संभव है?

  4. एकाधिक सर्वरों में मैसकल को कैसे विभाजित करें?

  5. मौजूदा mysql डेटाबेस को बदले बिना Wamp सर्वर को फिर से स्थापित करना