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

EXISTS बनाम IN के साथ उपश्रेणियाँ - MySQL

एक Explain Plan आपको दिखाया होगा कि वास्तव में आपको Exists . का उपयोग क्यों करना चाहिए? . आमतौर पर सवाल आता है Exists vs Count(*) . Exists ज्यादा तेज़ है। क्यों?

  • NULL द्वारा प्रस्तुत चुनौतियों के संबंध में:जब सबक्वेरी रिटर्न Null , क्योंकि IN पूरी क्वेरी Null . हो जाती है . तो आपको इसे भी संभालने की जरूरत है। लेकिन Exists का उपयोग कर रहे हैं , यह केवल एक false है . सामना करना ज्यादा आसान है। बस IN किसी भी चीज़ की तुलना Null से नहीं कर सकते लेकिन Exists कर सकते हैं।

  • जैसे Exists (Select * from yourtable where bla = 'blabla'); जैसे ही एक हिट मिलती/मिलती है . आप सही/गलत हो जाते हैं .

  • इस मामले में IN Count(*) . की स्थिति लेता है सभी . का चयन करने के लिए WHERE . के आधार पर मेल खाने वाली पंक्तियां क्योंकि यह सभी मूल्यों की तुलना कर रहा है।

लेकिन यह भी न भूलें:

  • Exists IN . के विरुद्ध उच्च गति से निष्पादित होता है :जब सबक्वेरी परिणाम बहुत बड़े हों।
  • IN EXISTS . से आगे निकल जाता है :जब सबक्वेरी परिणाम बहुत छोटे हों।

अधिक विवरण के लिए संदर्भ:



  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. MySQL मास्टर टू मास्टर प्रतिकृति

  4. अनुक्रमणिका के लिए क्या करें और क्या न करें

  5. MAX () - MySQL में एक कॉलम में अधिकतम मान का पता लगाएं