मैं डेटाबेस में नया हूं और पढ़ रहा हूं कि एक फ़ील्ड में एक इंडेक्स जोड़ना जो आपको खोजना है, नाटकीय रूप से खोज समय को तेज कर सकता है। मैं इस वास्तविकता को समझता हूं, लेकिन यह वास्तव में काम करता है कि यह वास्तव में कैसे काम करता है। मैंने इस विषय पर थोड़ी सी खोज की है, लेकिन यह कैसे काम करता है इसके तकनीकी जवाब से कोई अच्छा, संक्षिप्त, और नहीं मिला है।डाटाबेस फ़ील्ड में इंडेक्स जोड़ने से उस क्षेत्र में खोज तेज हो जाती है?
मैंने इसे पुस्तक के पीछे एक इंडेक्स की तरह समझा है, लेकिन अद्वितीय तत्वों (जैसे उपयोगकर्ता डेटाबेस में ई-मेल पते) के डेटा फ़ील्ड के मामले में, पीछे का उपयोग करके पुस्तक समानता का एक समान रैखिक लुकअप समय एक गैर अनुक्रमित सीच के रूप में प्रदान करेगा।
खोज समय को तेज़ करने के लिए यहां क्या हो रहा है? मैंने B+-Trees का उपयोग करके खोज के बारे में थोड़ा सा पढ़ा है, लेकिन विवरण थोड़ा सा भी थे। जो मैं खोज रहा हूं वह है कि क्या हो रहा है इसका एक उच्च स्तरीय अवलोकन, मेरी वैचारिक समझ में मदद करने के लिए कुछ, तकनीकी विवरण नहीं।
यह अभी भी पर्याप्त उत्तर प्रदान नहीं करता है। एक तालिका में चीजों को फ़ील्ड (कॉलम) के रूप में संग्रहीत किया जाता है, इसलिए हम किसी डेटा फ़ील्ड को किसी पुस्तक में अध्याय के रूप में सोच सकते हैं। इसलिए यदि हम पुस्तक के ईमेल अध्याय पर जाते हैं, तो यह अभी भी एक ई-मेल के रूप में देखने के लिए तेज़ है जितना कि यह पुस्तक के सूचकांक में है। हम उस आइटम के लिए पूरी तालिका स्कैन नहीं करते हैं जिसे हम खोजना चाहते हैं ... केवल प्रासंगिक फ़ील्ड। –
तो आप प्रत्येक अध्याय में प्रत्येक पंक्ति के लिए फिर से * सभी * डेटा स्टोर करने का सुझाव दे रहे हैं? इस तरह आपके पास "अंतिम नाम" अध्याय है, जिसे अंतिम नाम से क्रमबद्ध किया गया है, पहला नाम, अंतिम नाम, डीओबी, जन्मस्थान, उपयोगकर्ता नाम, ईमेल, और 1000-शब्द जीवनी सूचीबद्ध है। फिर आपके पास उपयोगकर्ता नाम द्वारा क्रमबद्ध "उपयोगकर्ता नाम" अध्याय है, फिर से पहला नाम, अंतिम नाम, डीओबी, जन्मस्थान, उपयोगकर्ता नाम, ईमेल, और 1000-शब्द जीवनी सूचीबद्ध करना। फिर आपके पास "ईमेल" अध्याय है, ईमेल द्वारा क्रमबद्ध, पहला नाम, अंतिम नाम, डीओबी, जन्मस्थान, उपयोगकर्ता नाम, ईमेल, और एक 1000-शब्द जीवनी सूचीबद्ध है। यह अंतरिक्ष के अत्यधिक अक्षम उपयोग की तरह लगता है ... –
ठीक है, इस तरह से सोचो। हमारे पास एक पुस्तक है जिसमें केवल अद्वितीय ई-मेल पते शामिल हैं (कोई दोहराना नहीं)। यही वह है, कोई अन्य सामग्री नहीं। इस पुस्तक में, अगर हमारे पास एक इंडेक्स था, तो यह पुस्तक की सामग्री की एक सटीक प्रति होगी, केवल किसी भी तरह से क्रमबद्ध (हालांकि जो भी सूचकांक बनाता है) पर निर्भर करता है। तो, इस मामले में, पुस्तक या सूचकांक में एक ई-मेल पता खोजना बराबर है। यही कारण है कि मैं कहता हूं कि पुस्तक सूचकांक समानता विफल हो जाती है। इसके मुकाबले इसके लिए और भी कुछ है, क्योंकि एक अनुक्रमित डेटाबेस खोज को पूर्ण-स्कैन की तुलना में एक ई-मेल बहुत तेज मिलेगा। –