अनुक्रमणिका प्रश्नों के संबंध में, एक अनुक्रमणिका न केवल वांछनीय है, बल्कि यह आवश्यक . है चीजों को "तेज" करने के लिए। जैसा कि मैं इसे समझता हूं ("आम आदमी" शब्दों में), एक अनुक्रमणिका का कार्य किसी तालिका के अंदर डेटा की खोज और पुनर्प्राप्ति को गति देना है।
अनुक्रमणिका का उपयोग करने के कारण:
- प्रत्येक तालिका पर प्रत्येक पंक्ति को विशिष्ट रूप से पहचानें (प्राथमिक कुंजी एक अनुक्रमणिका है, आखिरकार)
- सूचकांक क्रमबद्ध हैं (भले ही डेटा न हो)
- खोजों और फ़िल्टरों को तेज़ करें:एक अनुक्रमणिका डेटा की पुनर्प्राप्ति को तेज़ बनाती है, क्योंकि यह तालिका में डेटा को "होल्ड" करती है (यह उस डेटा को "प्वाइंट" करती है जिसे आप पुनर्प्राप्त करना चाहते हैं)। साथ ही यह डेटाबेस इंजन के लिए डेटा को फ़िल्टर करना आसान बनाता है (सॉर्ट किए गए को फ़िल्टर करना हमेशा तेज़ और आसान होता है स्क्रैम्बल . की तुलना में डेटा डेटा)
- संबंधित तालिकाओं का उपयोग करते समय डेटा पुनर्प्राप्त करने के तरीके को अनुकूलित करें:प्राथमिक - विदेशी कुंजी संबंधों को शामिल करने वाले प्रश्नों को गति देने के लिए प्रत्येक विदेशी कुंजी को अनुक्रमित किया जाना चाहिए
कुछ "अंगूठे के नियम" का उपयोग मैं यह तय करने के लिए करता हूं कि किन क्षेत्रों को अनुक्रमित करने की आवश्यकता है:
- प्रत्येक प्राथमिक कुंजी को अनुक्रमित किया जाता है (स्पष्ट एक:प्राथमिक कुंजी अद्वितीय होनी चाहिए और शून्य नहीं होनी चाहिए)
- प्रत्येक विदेशी कुंजी को अनुक्रमित किया जाना चाहिए (प्राथमिक - विदेशी कुंजी संबंधों को कुशल बनाने के लिए)
- प्रत्येक संख्यात्मक या दिनांक फ़ील्ड जिस पर मुझे खोज करने की आवश्यकता है, उसे अनुक्रमित किया जाना चाहिए। उस ने कहा, मैं
double
से बचने की कोशिश करता हूं (या कोई अन्य फ़्लोटिंग पॉइंट न्यूमेरिक प्रकार) फ़ील्ड को अनुक्रमित किया जाना है, क्योंकि वे आम तौर पर उन मानों को संग्रहीत करने के लिए उपयोग किए जाते हैं जिन्हें खोजा जाना नहीं है। - हर
char
याvarchar
जिस क्षेत्र पर मुझे खोज करने की आवश्यकता है उसे अनुक्रमित किया जाना चाहिए।text
पर अनुक्रमणिका से बचने का प्रयास करें फ़ील्ड, क्योंकि वे उनमें बहुत बड़े मान रख सकते हैं। - से बचें अनुक्रमण बाइनरी (
blob
) फ़ील्ड... इसका कोई मतलब नहीं है - नहीं सब कुछ अनुक्रमित करने के प्रलोभन में पड़ना। यह तय करने के लिए अपना समय लें कि किन क्षेत्रों को जरूरी अनुक्रमित किया जाना चाहिए और कौन से फ़ील्ड नहीं होना चाहिए अनुक्रमित किया जाए।