आपको MySQL (InnoDB के मामले में) में समझना होगा कि यह केवल आपके इंडेक्स के बाएं सबसे उपसर्ग का उपयोग करता है। इसलिए यदि अनुक्रमणिका Field1 + Field2 में है, तो WHERE में केवल Field2 के साथ क्वेरी करना संपूर्ण अनुक्रमणिका का उपयोग नहीं कर सकता।
और अगर Field1 + Field2 + Field3
अनुक्रमणिका है, एक क्वेरी जिसमें केवल Field1 & Field3
. है कहां . में ऐसा ही होगा।
विकल्प 1
यदि आप प्रत्येक खोज को अनुकूलित करना चाहते हैं तो आपको प्रत्येक खोज परिदृश्य के लिए एक अलग अनुक्रमणिका बनानी होगी। हालाँकि, यदि तालिकाएँ बड़ी हैं, तो अनुक्रमणिकाएँ भी बहुत बड़ी हो जाएँगी। यदि वे खोज क्वेरी बहुत बार की जाती हैं तो यह इसके लायक होगा।
विकल्प 2
यदि आपकी खोजों में कम चयनात्मकता है तो आप एक अच्छी चाल का उपयोग कर सकते हैं (अर्थात लिंग) निम्न चयनात्मकता कॉलम को सबसे बाईं ओर रखकर और Gender IN(M, F)
का उपयोग करें इसे कहां . में शामिल करने के लिए संपूर्ण अनुक्रमणिका का उपयोग करने के लिए अन्य कॉलम के साथ क्लॉज।