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