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

MySQL क्या इनरजॉइन की कोई सीमा है?

आपके पास MySQL के लिए जॉइन की सीमा के पास कहीं भी नहीं है। आपके जुड़ने की संख्या खराब नहीं है। हालांकि, व्युत्पन्न तालिका (आपकी आंतरिक सबक्वायरी) में शामिल होने से आप प्रदर्शन समस्याओं का कारण बन सकते हैं, क्योंकि व्युत्पन्न तालिकाओं में अनुक्रमणिका नहीं होती है। इंडेक्स के बिना व्युत्पन्न तालिका में शामिल होना धीमा हो सकता है।

आपको शामिल होने के लिए इंडेक्स के साथ एक वास्तविक अस्थायी तालिका बनाने पर विचार करना चाहिए, या सबक्वायरी से बचने का कोई तरीका निकालना चाहिए।

MySQL में एक जॉइन मूल रूप से प्रत्येक सम्मिलित पंक्ति के लिए लुकअप (तलाश) करने जैसा है। इसलिए, यदि आप कई रिकॉर्ड में शामिल हो रहे हैं, तो MySQL को कई लुकअप करने होंगे। आप जितनी पंक्तियों में शामिल होते हैं, उससे कम कितनी तालिकाओं में आप शामिल होते हैं, यह एक समस्या हो सकती है।

वैसे भी, MySQL केवल हार मानने से पहले इतने सारे प्रयास करेगा और पूरी तालिका को पढ़ेगा। यह तय करने में बहुत अच्छा काम करता है कि कौन सा कम खर्चीला होगा।

शायद सबसे अच्छी चीज जो आप कर सकते हैं वह है विश्लेषण तालिका के साथ सूचकांक के आंकड़ों को अपडेट करके अनुमान लगाने में मदद करना।

आपके पास प्रति चयन एक WHERE क्लॉज हो सकता है। तो आपकी आंतरिक सबक्वायरी में WHERE क्लॉज होगा और आपकी बाहरी क्वेरी में WHERE क्लॉज होगा, और ये जॉइन के बाद लागू हो जाते हैं (कम से कम तार्किक रूप से, हालांकि MySQL आमतौर पर उन्हें प्रदर्शन के लिए पहले लागू करेगा)।

साथ ही, यह सब यह मानकर चल रहा है कि आप इंडेक्स का ठीक से उपयोग करना जानते हैं।



  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 का LEFT JOIN WHERE क्लॉज के साथ NULL रिकॉर्ड क्यों लौटा रहा है?

  2. MySQL में सब स्ट्रिंग्स के बीच टेक्स्ट निकालना

  3. डेटाबेस में टेक्स्ट जोड़ना

  4. MySQL में DATETIME फ़ील्ड से केवल दिनांक का चयन कैसे करें?

  5. स्लीक 3.0 बल्क इंसर्ट या अपडेट (अप्सर्ट)