विभिन्न प्रकार के इंडेक्स क्या हैं, प्रत्येक के क्या फायदे हैं?विभिन्न प्रकार के इंडेक्स क्या हैं, प्रत्येक के क्या फायदे हैं?
मैंने कवर और क्लस्टर इंडेक्स के बारे में सुना, और क्या हैं? आप उनका उपयोग कहां करेंगे?
विभिन्न प्रकार के इंडेक्स क्या हैं, प्रत्येक के क्या फायदे हैं?विभिन्न प्रकार के इंडेक्स क्या हैं, प्रत्येक के क्या फायदे हैं?
मैंने कवर और क्लस्टर इंडेक्स के बारे में सुना, और क्या हैं? आप उनका उपयोग कहां करेंगे?
thanx यह सहायक है 4 मुझे भी – Freelancer
OdeToCode has a good article covering the basic differences
यह लेख में कहते हैं:
उचित अनुक्रमित विशाल डाटाबेस में अच्छा प्रदर्शन के लिए महत्वपूर्ण हैं। कभी-कभी आप एक अच्छी इंडेक्स के साथ खराब लिखित क्वेरी के लिए बना सकते हैं, लेकिन खराब के लिए भी सर्वोत्तम प्रश्नों के साथ अनुक्रमण करना कठिन हो सकता है।
काफी सच है, तो भी ... अगर आप इसके साथ शुरुआत कर रहे हैं, तो मैं क्लस्टर और समग्र इंडेक्स पर ध्यान केंद्रित करूंगा, क्योंकि शायद आप सबसे ज्यादा उपयोग करेंगे।
मैं सूचकांक प्रकार के एक जोड़े
बिटमैप जोड़ देंगे - आप विभिन्न संभावित मानों की बहुत कम संख्या में है जब, बहुत तेजी से और अधिक स्थान
विभाजित ऊपर नहीं ले करता है - करने के लिए सूचकांक की अनुमति देता है भंडारण या प्रदर्शन कारणों के लिए आमतौर पर बहुत बड़ी डेटाबेस वस्तुओं पर लाभप्रद कुछ संपत्ति के आधार पर विभाजित किया जाना चाहिए।
फ़ंक्शन/अभिव्यक्ति अनुक्रमणिका - तालिका के आधार पर कुछ मूल्य की पूर्व-गणना करने के लिए उपयोग किया जाता है और इसे इंडेक्स में संग्रहीत करता है, एक बहुत ही सरल उदाहरण निम्न() या एक सबस्ट्रिंग फ़ंक्शन के आधार पर एक सूचकांक हो सकता है।
विभिन्न डेटाबेस सिस्टम के समान प्रकार के सूचकांक के लिए अलग-अलग नाम हैं, इसलिए इससे सावधान रहें। उदाहरण के लिए, ओरेकल में "इंडेक्स-संगठित तालिका" में SQL सर्वर और Sybase कॉल "क्लस्टरर्ड इंडेक्स" कहलाता है।
मेरा सुझाव है कि आप संबंधित जानकारी के लिए जेसन मैसी (http://statisticsio.com/) और ब्रेंट ओज़र (http://www.brentozar.com/) के ब्लॉग खोजें। उनके पास वास्तविक जीवन परिदृश्य के बारे में कुछ पोस्ट है जो इंडेक्स से संबंधित है।
पोस्टग्रेएसक्यूएल आंशिक अनुक्रमणिका की अनुमति देता है, जहां केवल एक पंक्ति से मेल खाने वाली पंक्तियां अनुक्रमित होती हैं। उदाहरण के लिए, आप केवल उन रिकॉर्ड्स के लिए ग्राहक तालिका को इंडेक्स करना चाहते हैं जो सक्रिय हैं। कुछ इस तरह दिख सकता है:
create index i on customers (id, name, whatever) where is_active is true;
अपनी अनुक्रमणिका कई कॉलम है, और आप कई निष्क्रिय ग्राहकों है, यह अंतरिक्ष के मामले में एक बड़ी जीत हो सकता है (सूचकांक कम डिस्क पृष्ठों में संग्रहीत किया जाएगा) और इस तरह प्रदर्शन ।सूचकांक आप की जरूरत है हिट करने के लिए, कम से कम, विधेय निर्दिष्ट करें:
select name from customers where is_active is true;
ओरेकल बी पेड़, बिटमैप, विभाजित और गैर विभाजित के विभिन्न संयोजनों है, बाइट, बिटमैप शामिल होने, और डोमेन अनुक्रमित रिवर्स। http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/data_acc.htm#PFGRF004
एसक्यूएल सर्वर 2008 filtered indexes है, PostgreSQL के partial indexes के समान:
यहाँ इस विषय पर 11gR1 प्रलेखन के लिए एक लिंक है। दोनों निर्दिष्ट मानदंडों से मेल खाने वाली पंक्तियों को केवल सूचकांक में शामिल करने की अनुमति देते हैं।
वाक्य रचना PostgreSQL के समान है:
create index i on Customers(name) where is_alive = cast(1 as bit);
परम्परागत ज्ञान पता चलता है कि सूचकांक विकल्प प्रमुखता के आधार पर किया जाना चाहिए। वे
एक कम प्रमुखता स्तंभ लिंग की तरह के लिए, बिटमैप का उपयोग कहूँगा। उच्च कार्डिनालिटी जैसे LAST_NAME के लिए, बी-पेड़ का उपयोग करें।
यह ओरेकल, जहां सूचकांक विकल्प के बजाय आवेदन के प्रकार (OLTP बनाम OLAP) पर आधारित होना चाहिए के साथ ऐसा नहीं है। बिटमैप इंडेक्स के साथ टेबल पर डीएमएल गंभीर लॉक विवाद पैदा कर सकता है। दूसरी ओर, ओरेकल सीबीओ आसानी से एकाधिक बिटमैप इंडेक्स को एक साथ जोड़ सकता है, और बिटमैप इंडेक्स का उपयोग नल की खोज के लिए किया जा सकता है।
लगातार DML और नियमित प्रश्नों, उपयोग BTREE के साथ एक OLTP प्रणाली के लिए: एक सामान्य नियम के रूप। OLAP सिस्टम के लिए कम से कम डीएमएल और adhoc क्वेरी के साथ, बिटमैप का उपयोग करें।
मुझे यकीन नहीं है कि यह अन्य डेटाबेस पर लागू होता है, टिप्पणियां आपका स्वागत है।
इंडेक्स संयोजन बिटमैप इंडेक्स के लिए उपयोग-मामला है। – Apocalisp
अनुक्रमित के प्रकार और उसके अर्थ का दौरा देखने के लिए: https://msdn.microsoft.com/en-us/library/ms175049.aspx
क्या डेटाबेस मंच? – therealhoff