में विस्तार से समझाया गया है मैं MySQL प्रशिक्षण कक्षाएं पढ़ाने के लिए, और जब बहु-स्तंभ अनुक्रमणिका पर चर्चा, मैं एक टेलीफोन पुस्तक के लिए एक सादृश्य का उपयोग करें। एक टेलीफोन बुक मूल रूप से अंतिम नाम पर एक सूचकांक है, फिर पहला नाम। तो सॉर्ट ऑर्डर निर्धारित होता है जिसके द्वारा "कॉलम" पहले होता है। खोजों में कुछ श्रेणियों में आते हैं:
- यदि आप जिन लोगों के अंतिम नाम स्मिथ है देखो, आप उन्हें आसानी से, क्योंकि किताब उपनाम के अनुसार क्रमबद्ध है पा सकते हैं।
- यदि आप जिन लोगों के पहला नाम है जॉन को देखने, टेलीफोन पुस्तक मदद नहीं करता है क्योंकि जॉन्स पुस्तक में बिखरे हुए हैं। आपको उन सभी को खोजने के लिए पूरी टेलीफोन पुस्तक को स्कैन करना होगा।
- तो आप एक विशिष्ट अंतिम नाम स्मिथ और एक विशिष्ट पहला नाम जॉन के साथ लोगों को देखने, किताब, क्योंकि आप पाते हैं स्मिथ एक साथ हल कर मदद करता है, और स्मिथ के उस समूह के भीतर, जॉन्स भी क्रमबद्ध क्रम में पाए जाते हैं।
आप एक टेलीफोन पुस्तक अंतिम नाम से तो नाम के अनुसार क्रमबद्ध था, तो उस पुस्तक की छंटाई ऊपर मामलों # 2 और # 3 में सहायता करेंगे, लेकिन # 1 मामला नहीं।
यह सटीक मूल्यों को देखने के लिए मामलों की व्याख्या करता है, लेकिन यदि आप मूल्यों की सीमाओं से देख रहे हैं तो क्या होगा? मान लें कि आप उन सभी लोगों को ढूंढना चाहते हैं जिनके पहले नाम जॉन हैं और जिसका अंतिम नाम 'एस' (स्मिथ, सॉंडर्स, स्टैंटन, शेरमेन इत्यादि) से शुरू होता है। जॉन्स को प्रत्येक अंतिम नाम के भीतर जे के तहत क्रमबद्ध किया जाता है, लेकिन यदि आप एस के साथ शुरू होने वाले सभी अंतिम नामों के लिए सभी जॉन्स चाहते हैं, तो जॉन्स को एक साथ समूहीकृत नहीं किया जाता है। वे फिर से बिखरे हुए हैं, इसलिए आप 'एस' से शुरू होने वाले अंतिम नाम के साथ सभी नामों को स्कैन करना चाहते हैं। जबकि अगर पहले नाम से टेलीफोन बुक का आयोजन किया गया था, तो आखिरी नाम से, आप सभी जॉन्स को एक साथ मिलेंगे, फिर जॉन्स के भीतर, सभी एस अंतिम नामों को एक साथ समूहीकृत किया जाएगा।
तो बहु-स्तंभ सूचकांक में कॉलम का क्रम निश्चित रूप से मायने रखता है। एक प्रकार की क्वेरी को इंडेक्स के लिए एक निश्चित कॉलम ऑर्डर की आवश्यकता हो सकती है। यदि आपके पास कई प्रकार के प्रश्न हैं, तो आपको अलग-अलग ऑर्डर में कॉलम के साथ उनकी सहायता करने के लिए कई अनुक्रमणिका की आवश्यकता हो सकती है।
अधिक जानकारी और उदाहरण के लिए, अपनी प्रस्तुति How to Design Indexes, Really देखते हैं। या मेरी प्रस्तुति video पर देखें।
स्रोत
2012-12-17 01:55:26
आप केवल पहले कथन में 1 अनुक्रमणिका बना रहे हैं। यह last_name, first_name, प्रारंभिक के आधार पर एक फोन बुक खोजना होगा। दूसरा कथन दो फोन की किताबों की तरह होगा: एक last_name द्वारा और एक और पुस्तक first_name द्वारा। – Glenn
[इस प्रश्न के उत्तर देखें। इसने इंडेक्स के बारे में उनका उल्लेख किया।] (Http://stackoverflow.com/questions/13892952/database-schema-confusing-index-and-constraints) –