नहीं, ऐसा नहीं होगा।
सैद्धांतिक रूप से, (site, product, value, id)
. पर एक अनुक्रमणिका इन क्षेत्रों के किसी भी सबसेट पर इंडेक्स बनाने के लिए आवश्यक सब कुछ है ((product, value, id)
पर इंडेक्स सहित) और (value, id)
)।
हालांकि, द्वितीयक अनुक्रमणिका से अनुक्रमणिका बनाना समर्थित नहीं है।
सबसे पहले, MySQL
तेजी से पूर्ण अनुक्रमणिका स्कैन का समर्थन नहीं करता है (जो तार्किक के बजाय भौतिक क्रम में एक अनुक्रमणिका को स्कैन कर रहा है), इस प्रकार तालिका पढ़ने की तुलना में इंडेक्स एक्सेस पथ को अधिक महंगा बना देता है। यह InnoDB
के लिए कोई समस्या नहीं है , चूंकि टेबल हमेशा क्लस्टर होती है।
दूसरा, इन इंडेक्स में रिकॉर्ड ऑर्डर पूरी तरह से अलग हैं इसलिए रिकॉर्ड को वैसे भी सॉर्ट करने की आवश्यकता है।
हालांकि, MySQL
में अनुक्रमणिका निर्माण गति के साथ मुख्य समस्या है यह है कि यह साइट पर ऑर्डर उत्पन्न करता है (केवल एक-एक करके रिकॉर्ड्स को B-Tree
में डालना ) एक पूर्वनिर्धारित स्रोत का उपयोग करने के बजाय। जैसा कि @Daniel ने उल्लेख किया है, तेज़ अनुक्रमणिका निर्माण इस समस्या को हल करता है। यह 5.1
. के लिए एक प्लगइन के रूप में उपलब्ध है और 5.5
. में प्रीइंस्टॉल्ड आता है ।