मेरे पास एक ऐप है, जो डेटाबेस तालिका में बड़ी संख्या में रिकॉर्ड्स के माध्यम से चक्र चलाता है और उस डेटाबेस के भीतर रिकॉर्ड्स पर कई SQL और .Net संचालन करता है (वर्तमान में मैं PostgreSQL पर Castle.ActiveRecord का उपयोग कर रहा हूं)।डेटाबेस इंडेक्स बनाने के लिए कुछ सर्वोत्तम प्रथाओं और "अंगूठे के नियम" क्या हैं?
मैंने कुछ फील्ड पर कुछ बुनियादी बीटी इंडेक्स जोड़े, और जैसा कि आप उम्मीद करेंगे, एसक्यूएल परिचालन का प्रदर्शन काफी हद तक बढ़ गया है। अधिकांश डीबीएमएस प्रदर्शन करना चाहते हैं, मैं अपनी सभी परियोजनाओं पर मुझे क्या सूचकांक देना चाहिए इसके बारे में कुछ बेहतर शिक्षित विकल्प बनाना चाहता हूं।
मैं समझता हूं कि प्रदर्शन करते समय प्रदर्शन में कमी है (डेटाबेस को इंडेक्स को अपडेट करने की आवश्यकता है, साथ ही साथ डेटा), लेकिन डेटाबेस इंडेक्स बनाने के साथ मुझे किन सुझावों और सर्वोत्तम प्रथाओं पर विचार करना चाहिए? मैं डेटाबेस इंडेक्स (अंगूठे के नियम) के सेट के लिए फ़ील्ड के फ़ील्ड/संयोजन का सबसे अच्छा चयन कैसे करूं?
साथ ही, मैं क्लस्टर इंडेक्स के रूप में किस इंडेक्स का उपयोग करना चुनता हूं? और जब पहुंच विधि की बात आती है, तो मुझे किन स्थितियों के तहत हैश या एक गिस्ट या जीन पर एक ब्रीटी का उपयोग करना चाहिए (वे वैसे भी क्या हैं?)।
यह उत्तर एक अच्छी शुरुआत है लेकिन कुछ तरीकों से थोड़ा सा सरल है। सभी विदेशी कुंजियों को अनुक्रमणित करना हमेशा सही नहीं होता है क्योंकि कभी-कभी डेटा हमेशा एफके से माता-पिता तक जाता है। हमेशा उच्चतम कार्डिनिटी को पहले रखना बेकार है अगर कभी पूछताछ नहीं की जाती है। और कई और चीजें। [इस पोस्ट को पढ़ना] (http://stackoverflow.com/questions/3293156/effects-of-clustered-index-on-db-performance/3295528#3295528) कुछ पाठकों के लिए उपयोगी हो सकता है। – ErikE