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

STRAIGHT_JOIN इस क्वेरी में इतना अधिक सुधार क्यों करता है, और जब इसे SELECT कीवर्ड के बाद लिखा जाता है तो इसका क्या अर्थ होता है?

STRAIGHT_JOIN तालिकाओं के सम्मिलित क्रम को बाध्य करता है, इसलिए table1 बाहरी लूप में स्कैन किया जाता है और table2 इनर लूप में।

ऑप्टिमाइज़र सही नहीं है (हालाँकि अभी भी काफी सभ्य है), और सबसे संभावित कारण पुराने आँकड़े हैं।

नहीं, केवल तभी जब अनुकूलक गलत हो। ऐसा हो सकता है यदि आपका डेटा वितरण गंभीर रूप से विषम है या ठीक से गणना नहीं की जा सकती है (जैसे, स्थानिक या पूर्ण पाठ अनुक्रमणिका के लिए)।

आपको आंकड़े एकत्र करने चाहिए, दोनों तरह से योजनाएं बनानी चाहिए और समझना चाहिए कि इन योजनाओं का क्या मतलब है।

अगर आप इसे देखते हैं:

  1. स्वचालित रूप से जेनरेट की गई योजना इष्टतम नहीं है और इसे मानक तरीकों से सुधारा नहीं जा सकता,

  2. STRAIGHT_JOIN संस्करण बेहतर है, आप समझते हैं कि यह हमेशा रहेगा और समझेगा क्यों यह हमेशा रहेगा

, फिर STRAIGHT_JOIN use का उपयोग करें ।




  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. डेटाबेस से वंशावली/पारिवारिक वृक्ष चार्ट

  3. ImportError:MySQLdb नाम का कोई मॉड्यूल नहीं

  4. दूरस्थ सर्वर से स्थानीय कंप्यूटर पर mysql डेटाबेस की प्रतिलिपि बनाएँ

  5. mysql में तालिका नहीं बनाई जा सकती - त्रुटि 1064