एसक्यूएल - इंडेक्स

सूचकांक हैं special lookup tablesडेटाबेस खोज इंजन डेटा पुनर्प्राप्ति को गति देने के लिए उपयोग कर सकता है। सीधे शब्दों में कहें, एक सूचकांक एक तालिका में डेटा के लिए एक सूचक है। एक डेटाबेस में एक इंडेक्स एक किताब के पीछे एक इंडेक्स के समान है।

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

एक सूचकांक तेजी लाने में मदद करता है SELECT प्रश्न और WHERE खंड, लेकिन यह डेटा इनपुट को धीमा कर देता है, के साथ UPDATE और यह INSERTबयान। इंडेक्स डेटा पर कोई प्रभाव नहीं बनाया या गिराया जा सकता है।

एक सूचकांक बनाना शामिल है CREATE INDEX बयान, जो आपको सूचकांक को नाम देने की अनुमति देता है, तालिका को निर्दिष्ट करने के लिए और कौन सा कॉलम या कॉलम को सूचकांक में, और यह इंगित करने के लिए कि क्या सूचकांक एक आरोही या अवरोही क्रम में है।

इंडेक्स भी अनोखे हो सकते हैं, जैसे UNIQUE बाधा, उस सूचकांक में स्तंभ में डुप्लिकेट प्रविष्टियों या स्तंभों के संयोजन को रोकता है, जिस पर एक सूचकांक होता है।

क्रिएट इंडेक्स कमांड

मूल वाक्य रचना a CREATE INDEX इस प्रकार है।

CREATE INDEX index_name ON table_name;

एकल-स्तंभ अनुक्रमणिका

एकल-स्तंभ अनुक्रमणिका केवल एक तालिका स्तंभ के आधार पर बनाई गई है। मूल सिंटैक्स इस प्रकार है।

CREATE INDEX index_name
ON table_name (column_name);

अनोखा सूचकांक

यूनीक इंडेक्स का उपयोग न केवल प्रदर्शन के लिए किया जाता है, बल्कि डेटा अखंडता के लिए भी किया जाता है। एक अद्वितीय सूचकांक किसी भी डुप्लिकेट मानों को तालिका में सम्मिलित करने की अनुमति नहीं देता है। मूल सिंटैक्स इस प्रकार है।

CREATE UNIQUE INDEX index_name
on table_name (column_name);

समग्र सूचकांक

एक संयुक्त सूचकांक एक तालिका के दो या अधिक स्तंभों पर एक सूचकांक है। इसका मूल वाक्यविन्यास इस प्रकार है।

CREATE INDEX index_name
on table_name (column1, column2);

चाहे सिंगल-कॉलम इंडेक्स या कंपोजिट इंडेक्स बनाएं, कॉलम (एस) को ध्यान में रखें जो कि आप किसी क्वेरी के WHERE क्लॉज में फ़िल्टर शर्तों के रूप में बहुत बार उपयोग कर सकते हैं।

क्या केवल एक कॉलम का उपयोग किया जाना चाहिए, एकल-कॉलम इंडेक्स का विकल्प होना चाहिए। क्या दो या दो से अधिक कॉलम होने चाहिए, जिन्हें अक्सर फिल्टर के रूप में WHERE क्लॉज में उपयोग किया जाता है, कम्पोजिट इंडेक्स सबसे अच्छा विकल्प होगा।

निहित सूचकांक

इंप्लिकेट इंडेक्स इंडेक्स होते हैं जो किसी ऑब्जेक्ट के बनने पर डेटाबेस सर्वर द्वारा स्वचालित रूप से बनाए जाते हैं। प्राथमिक प्रमुख बाधाओं और अद्वितीय बाधाओं के लिए इंडेक्स स्वचालित रूप से बनाए जाते हैं।

DROP INDEX कमांड

SQL का उपयोग करके एक इंडेक्स को गिराया जा सकता है DROPआदेश। इंडेक्स ड्रॉप करते समय ध्यान रखा जाना चाहिए क्योंकि प्रदर्शन या तो धीमा हो सकता है या बेहतर हो सकता है।

मूल वाक्य रचना इस प्रकार है -

DROP INDEX index_name;

इंडेक्स पर कुछ वास्तविक उदाहरण देखने के लिए आप INDEX बाधा अध्याय की जाँच कर सकते हैं।

सूचकांक को कब टाला जाना चाहिए?

हालांकि अनुक्रमित एक डेटाबेस के प्रदर्शन को बढ़ाने के इरादे से किए जाते हैं, लेकिन कई बार ऐसे समय होते हैं जब उन्हें टाला जाना चाहिए।

निम्नलिखित दिशानिर्देशों का संकेत मिलता है जब एक सूचकांक के उपयोग पर पुनर्विचार किया जाना चाहिए।

  • इंडेक्स का उपयोग छोटी तालिकाओं पर नहीं किया जाना चाहिए।

  • टेबल्स जिनमें बार-बार, बड़े बैच अपडेट या ऑपरेशन सम्मिलित होते हैं।

  • उन स्तंभों पर अनुक्रमणिका का उपयोग नहीं किया जाना चाहिए जिनमें अधिक संख्या में NULL मान हैं।

  • जिन कॉलमों में अक्सर हेरफेर किया जाता है, उन्हें अनुक्रमित नहीं किया जाना चाहिए।