अनुक्रमणिका क्रम तब मायने रखता है जब आपकी क्वेरी शर्तें केवल भाग . पर लागू होती हैं सूचकांक का। विचार करें:
-
SELECT * FROM table WHERE first_name="john" AND last_name="doe" -
SELECT * FROM table WHERE first_name="john" -
SELECT * FROM table WHERE last_name="doe"
अगर आपकी अनुक्रमणिका (first_name . है , last_name ) क्वेरी 1 और 2 इसका उपयोग करेंगे, क्वेरी #3 नहीं होगी। यदि आपकी अनुक्रमणिका (last_name) है , first_name ) प्रश्न 1 और 3 इसका उपयोग करेंगे, प्रश्न # 2 नहीं होगा। WHERE क्लॉज के भीतर कंडीशन ऑर्डर बदलने से किसी भी स्थिति में कोई प्रभाव नहीं पड़ता है।
विवरण यहां हैं।
अपडेट करें :
यदि उपरोक्त स्पष्ट नहीं है - MySQL केवल एक अनुक्रमणिका का उपयोग कर सकता है यदि क्वेरी स्थितियों में स्तंभ अनुक्रमणिका का सबसे बाईं ओर उपसर्ग बनाते हैं। ऊपर प्रश्न #2 उपयोग नहीं कर सकता (last_name , first_name ) अनुक्रमणिका क्योंकि यह केवल first_name . पर आधारित है और first_name (last_name . का सबसे बाएं उपसर्ग नहीं है , first_name ) सूचकांक।
क्वेरी के भीतर शर्तों का क्रम मायने नहीं रखता; उपरोक्त क्वेरी #1 उपयोग करने में सक्षम होगी (last_name , first_name ) अनुक्रमणिका ठीक है क्योंकि इसकी शर्तें हैं first_name और last_name और, एक साथ लिया गया, वे (last_name .) का सबसे बाईं ओर उपसर्ग बनाते हैं , first_name ) सूचकांक।