2010-06-02 11 views

उत्तर

224

डेटाबेस में खोज को तेज़ करने के लिए एक अनुक्रमणिका का उपयोग किया जाता है। http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

एक सूचकांक कुशलता से अपने क्वेरी में कुछ स्तंभ से मेल खाते सभी पंक्ति को खोजने के लिए और उसके बाद के केवल उस सबसेट के माध्यम से चलना इस्तेमाल किया जा सकता: MySQL इस विषय पर कुछ अच्छा प्रलेखन (जो साथ ही अन्य एसक्यूएल सर्वर के लिए प्रासंगिक है) सटीक मिलान खोजने के लिए टेबल। आप WHERE खंड में किसी भी स्तंभ सूचक नहीं है, तो, SQL सर्वर पूरी तालिकाके माध्यम से चलना और अगर यह मेल खाता देखने के लिए, बड़ा टेबल पर एक धीमी गति से संचालन किया जा सकता है जो प्रत्येक पंक्ति की जाँच करने के लिए है।

सूचकांक UNIQUE अनुक्रमणिका भी हो सकता है, जिसका अर्थ है कि आपके पास उस कॉलम में डुप्लिकेट मान नहीं हो सकते हैं, या PRIMARY KEY जो कुछ स्टोरेज इंजन परिभाषित करता है कि डेटाबेस फ़ाइल में मान संग्रहीत किया जाता है।

MySQL में आप का उपयोग अपने SELECT कथन के सामने कर सकते हैं ताकि यह देखने के लिए कि आपकी क्वेरी किसी भी इंडेक्स का उपयोग करेगी या नहीं। समस्या निवारण प्रदर्शन समस्याओं के लिए यह एक अच्छी शुरुआत है। यहां और पढ़ें: http://dev.mysql.com/doc/refman/5.0/en/explain.html

68

प्रश्नों के प्रदर्शन को तेज करने के लिए एक अनुक्रमणिका का उपयोग किया जाता है। यह डेटाबेस डेटा पृष्ठों की संख्या को कम करके करता है जिन्हें विज़िट/स्कैन किया जाना चाहिए।

SQL सर्वर में, क्लस्टर अनुक्रमणिका तालिका में डेटा का भौतिक क्रम निर्धारित करती है। प्रति तालिका केवल एक क्लस्टर सूचकांक हो सकता है (क्लस्टर सूचकांक तालिका है)। किसी तालिका पर मौजूद सभी अन्य इंडेक्स को गैर-क्लस्टर कहा जाता है।

3

एक index कई अलग-अलग कारणों से उपयोग किया जाता है। मुख्य कारण पूछताछ तेज करना है ताकि आप पंक्तियां प्राप्त कर सकें या पंक्तियों को तेज़ कर सकें। एक अन्य कारण प्राथमिक कुंजी या अद्वितीय इंडेक्स को परिभाषित करना है जो गारंटी देगा कि अन्य कॉलम के समान मूल्य नहीं हैं।

3

यदि आप SQL सर्वर का उपयोग कर रहे हैं, तो सर्वोत्तम संसाधनों में से एक यह है कि इंस्टॉल के साथ आता है! यह 1 जगह मैं किसी भी एसक्यूएल सर्वर से संबंधित विषयों के लिए का उल्लेख करेंगे।

अगर यह व्यावहारिक है "कैसे मैं इस करना चाहिए?" सवालों की तरह है, तो StackOverflow पूछने के लिए एक बेहतर जगह होगी।

इसके अलावा, मैं थोड़ी देर के लिए वापस नहीं किया गया है लेकिन sqlservercentral.com वहाँ शीर्ष एसक्यूएल सर्वर से संबंधित साइटों में से एक हुआ करता था।

14

खैर सामान्य सूचकांक में एक B-tree है। दो प्रकार के इंडेक्स हैं: क्लस्टर्ड और नॉनक्स्टर्ड।

क्लस्टर किया सूचकांक पंक्तियों की एक भौतिक आदेश बनाता है (यह हो सकता है केवल एक और ज्यादातर मामलों में यह भी एक प्राथमिक कुंजी है - अगर आप मेज पर प्राथमिक कुंजी बनाने आप भी इस मेज पर सूचकांक क्लस्टर बनाएँ)।

Nonclustered अनुक्रमणिका भी एक बाइनरी पेड़ है लेकिन यह पंक्तियों का भौतिक क्रम नहीं बनाता है। इसलिए गैर-क्लस्टर इंडेक्स के पत्ते नोड्स में पीके (यदि यह मौजूद है) या पंक्ति सूचकांक होता है।

इंडेक्स का उपयोग खोज की गति को बढ़ाने के लिए किया जाता है। क्योंकि जटिलता ओ (लॉग एन) है। सूचकांक बहुत बड़ा और दिलचस्प विषय है। मैं कह सकता हूं कि बड़े डेटाबेस पर इंडेक्स बनाना कभी-कभी किसी प्रकार की कला है।

+5

, एक द्विआधारी पेड़ अपने बी-वृक्ष के बजाय। –

104

क्लस्टर्ड इंडेक्स एक फोन बुक की सामग्री की तरह है। आप 'हिल्डिच, डेविड' पर पुस्तक खोल सकते हैं और 'हीलिच के अधिकार' के लिए सभी जानकारी एक दूसरे के बगल में पा सकते हैं। यहां क्लस्टर्ड इंडेक्स के लिए कुंजी हैं (अंतिम नाम, पहला नाम)।

इस रेंज आधारित प्रश्नों के आधार पर डेटा के बहुत सारे पुन: प्राप्त करने के बाद से सभी डेटा एक दूसरे के बगल में स्थित है के लिए महान संकुल अनुक्रमणिका बनाता है।

के बाद से संकुल अनुक्रमणिका वास्तव में कैसे डेटा संग्रहीत किया जाता है से संबंधित है, वहाँ केवल संभव उनमें से एक तालिका के अनुसार है (हालांकि आप एक से अधिक क्लस्टर अनुक्रमित अनुकरण करने के लिए धोखा कर सकते हैं)।

एक गैर क्लस्टर सूचकांक कि में अलग आप उनमें से कई हो सकते हैं और वे तो क्लस्टर सूचकांक में डेटा बिंदु पर है। आप उदास हो सकता है एक फोन बुक के पीछे एक गैर-क्लस्टर्ड इंडेक्स जिस पर (शहर, पता)

कल्पना कीजिए कि अगर आपको 'लंदन' में रहने वाले सभी लोगों के लिए फोन बुक खोजना है - केवल क्लस्टर के साथ इंडेक्स आपको फोन बुक में प्रत्येक आइटम को खोजना होगा क्योंकि क्लस्टर इंडेक्स पर कुंजी चालू है (अंतिम नाम, पहला नाम) और नतीजतन लंदन में रहने वाले लोग इंडेक्स में बेतरतीब ढंग से बिखरे हुए हैं।

आप पर (शहर) एक गैर क्लस्टर सूचकांक है तो इन प्रश्नों अधिक तेजी से किया जा सकता है।

आशा है कि मदद करता है!

+41

मुझे लगता है कि फोन बुक समानता शुरुआती लोगों के लिए उत्कृष्ट है ... समर्थक वे पर्याप्त रूप से पुरानी हैं कि यह जानने के लिए कि फ़ोन फोन क्या है! ;) – chrnola

+3

गैर क्लस्टर इंडेक्स –

+0

@chrnola के लिए आवश्यकता की बहुत अच्छी व्याख्या अब मुझे पुरानी लग रही है :( – Guerrilla

33

इंडेक्स सब जल्दी से डेटा खोजने के बारे में कर रहे हैं। डेटाबेस में इंडेक्स इंडेक्स के समान होते हैं जिन्हें आप किसी पुस्तक में पाते हैं। यदि किसी पुस्तक में एक इंडेक्स है, और मैं आपको उस पुस्तक में एक अध्याय खोजने के लिए कहता हूं, तो आप तुरंत इंडेक्स की मदद से इसे पा सकते हैं। दूसरी तरफ, यदि पुस्तक में कोई इंडेक्स नहीं है, तो आपको पुस्तक के अंत तक प्रत्येक पृष्ठ को देखकर, अध्याय की तलाश में अधिक समय बिताना होगा। इसी तरह, डेटाबेस में अनुक्रमणिका, डेटा को जल्दी से ढूंढने में प्रश्नों की सहायता कर सकती हैं। यदि आप इंडेक्स में नए हैं, तो निम्न वीडियो, बहुत उपयोगी हो सकते हैं। वास्तव में, मैंने उनसे बहुत कुछ सीखा है।

Index Basics
Clustered and Non-Clustered Indexes
Unique and Non-Unique Indexes
Advantages and disadvantages of indexes

+0

पहला लिंक उदाहरण है और यह उत्कृष्ट है! – user1700890

+0

सभी उत्तरों को पढ़ने से मुझे आश्चर्य हुआ कि क्यों सबकुछ इंडेक्स नहीं है। +1 लिंक वाले नुकसान। –

11

INDEXES - डुप्लिकेट मानों INDEX

के लिए

सिंटेक्स की अनुमति नहीं है - डेटा आसानी से

UNIQUE INDEX को खोजने के लिए

CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN); 

के लिए UNIQUE INDEX

CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME(COLUMN); 
8

सूचकांक सिंटेक्स एक प्रदर्शन अनुकूलन तकनीक है कि डेटा पुनर्प्राप्ति प्रक्रिया को गति है। यह एक सतत डेटा संरचना है जो उस तालिका (या दृश्य) से डेटा पुनर्प्राप्त करने के दौरान प्रदर्शन बढ़ाने के लिए तालिका (या दृश्य) से जुड़ा हुआ है।

इंडेक्स आधारित खोज अधिक विशेष रूप से लागू होती है जब आपके प्रश्नों में WHERE फ़िल्टर शामिल होता है। अन्यथा, यानी, WHERE-filter के बिना एक क्वेरी पूरे डेटा और प्रक्रिया का चयन करती है। INDEX के बिना पूरी तालिका खोजना टेबल-स्कैन कहा जाता है।

आप स्पष्ट और विश्वसनीय तरीके से Sql-इंडेक्स के लिए सटीक जानकारी मिल जाएगी:

  1. cocnept के लिहाज से समझ के लिए: http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Overview-and-Optimizations.html
  2. कार्यान्वयन के लिहाज से समझ के लिए: http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Creation-Deletetion-Optimizations.html
  3. इन लिंक का अनुसरण करें
72

एक बहुत अच्छी सादृश्य एक पुस्तक में एक सूचकांक के रूप में डेटाबेस इंडेक्स के बारे में सोचना है। यदि आपके पास देशों के बारे में कोई पुस्तक है और आप भारत की तलाश में हैं, तो आप पूरी किताब के माध्यम से क्यों फ़्लिप करेंगे - जो डेटाबेस शब्दावली में पूर्ण तालिका स्कैन के बराबर है - जब आप केवल इंडेक्स पर वापस जा सकते हैं पुस्तक, जो आपको सटीक पृष्ठ बताएगी जहां आप भारत पर जानकारी पा सकते हैं। इसी तरह, एक पुस्तक अनुक्रमणिका के रूप में एक पृष्ठ संख्या होती है, एक डेटाबेस इंडेक्स में पंक्ति के लिए एक सूचक होता है जिसमें वह मान होता है जिसे आप अपने SQL में खोज रहे हैं।

More Here

सामान्य रूप में
+2

सही उदाहरण, सरल और स्पष्ट –

संबंधित मुद्दे