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

MySQL के साथ STRAIGHT_JOIN का उपयोग कब करें

मैं बिना किसी अच्छे कारण के STRAIGHT_JOIN का उपयोग करने की अनुशंसा नहीं करूंगा। मेरा अपना अनुभव है कि MySQL क्वेरी ऑप्टिमाइज़र मेरी अपेक्षा से अधिक बार खराब क्वेरी योजना का चयन करता है, लेकिन अक्सर इतना पर्याप्त नहीं होता कि आप इसे सामान्य रूप से बायपास कर दें, यदि आप हमेशा STRAIGHT_JOIN का उपयोग करते हैं तो आप यही कर रहे होंगे।

मेरी सिफारिश है कि सभी प्रश्नों को नियमित जॉइन के रूप में छोड़ दें। यदि आप पाते हैं कि एक प्रश्न उप-इष्टतम क्वेरी योजना का उपयोग कर रहा है, तो मैं सुझाव दूंगा कि पहले क्वेरी को फिर से लिखने या फिर से संरचित करने का प्रयास करें ताकि यह देखने के लिए कि ऑप्टिमाइज़र एक बेहतर क्वेरी योजना चुनेगा या नहीं। साथ ही, कम से कम innodb के लिए, सुनिश्चित करें कि यह केवल आपके अनुक्रमणिका आँकड़े पुराने नहीं हैं (तालिका का विश्लेषण करें ) इससे अनुकूलक खराब क्वेरी योजना चुन सकता है। ऑप्टिमाइज़र संकेत आम तौर पर आपका अंतिम उपाय होना चाहिए।

क्वेरी संकेतों का उपयोग न करने का एक अन्य कारण यह है कि आपका डेटा वितरण समय के साथ बदल सकता है, या आपकी अनुक्रमणिका चयनात्मकता बदल सकती है, आदि जैसे-जैसे आपकी तालिका बढ़ती है। आपकी क्वेरी संकेत जो अभी इष्टतम हैं, समय के साथ उप-इष्टतम हो सकते हैं। लेकिन आपके अब पुराने संकेतों के कारण अनुकूलक क्वेरी योजना को अनुकूलित करने में असमर्थ होगा। यदि आप अनुकूलक को निर्णय लेने की अनुमति देते हैं तो आप अधिक लचीले बने रहते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ansible . का उपयोग करके स्टैंडअलोन MySQL से गैलेरा क्लस्टर में माइग्रेशन को स्वचालित कैसे करें

  2. चेतावनी:mysql_fetch_array() पैरामीटर 1 को संसाधन, बूलियन में दिए जाने की अपेक्षा करता है

  3. MySQL में प्रति माह कुल बिक्री की गणना कैसे करें?

  4. JSON_MERGE_PATCH () बनाम JSON_MERGE_PRESERVE () MySQL में:क्या अंतर है?

  5. 'Automysqlbackup' और 'Autopostgresqlbackup' टूल्स का उपयोग करके MySQL/MariaDB और PostgreSQL का बैकअप/पुनर्स्थापित कैसे करें