मैं यहां जोड़ना चाहता हूं कि अलग-अलग डेटाबेस को अलग-अलग रणनीतियों की आवश्यकता होती है। उदाहरण के लिए आइए MySQL w / InnoDB और PostgreSQL की तुलना करें।
InnoDB
InnoDB टेबल मूल रूप से प्राथमिक कुंजी का एक बी-ट्री इंडेक्स है जिसे इंडेक्स प्रविष्टि में पंक्ति जानकारी शामिल करने के लिए बढ़ाया जाता है। भौतिक आदेश स्कैन समर्थित नहीं हैं और सभी स्कैन तार्किक क्रम में होते हैं। इसका मतलब है दो चीजें:
इनोडब में एक अनुक्रमिक स्कैन बहुत सारे यादृच्छिक डिस्क I / O उत्पन्न करता है , और
प्राथमिक कुंजी सूचकांक की परवाह किए बिना होना चाहिए चाहे एक माध्यमिक सूचकांक का उपयोग कर रहा हो।
किसी भी अन्य दृष्टिकोण की तुलना में इस मॉडल में प्राथमिक कुंजी लुकअप तेजी से होते हैं।
इस मामले में बहु-पृष्ठ तालिकाओं में पर्याप्त फ़ील्ड को अनुक्रमित करना बहुत महत्वपूर्ण है। विशिष्ट नियम वह सब कुछ है जिसे आप फ़िल्टर करना चाहते हैं।
PostgreSQL
PostgreSQL हीप फ़ाइलों का उपयोग करता है, प्रति फ़ाइल एक टेबल (कुछ टेबल कई फाइलें हो सकती हैं) जहां उस ढेर के खाली स्थान से ट्यूपल आवंटित किए जाते हैं। भौतिक क्रम स्कैन समर्थित हैं। काम करने के लिए तार्किक ऑर्डर स्कैन के लिए, एक इंडेक्स जोड़ा जाना चाहिए।
PostgreSQL में प्राथमिक कुंजी मूल रूप से अनूठे अनुक्रमों का एक सबसेट है, जहां कोई मान NULL नहीं हो सकता है। UNIQUE बाधाओं को अंतर्निहित अनुक्रमितों का उपयोग करके किया जाता है, और कई अन्य सूचकांक प्रकारों को सूचकांक में संभव विभिन्न कार्यों के साथ समर्थित किया जाता है।
इसका मतलब है की:
प्राथमिक कुंजी लुकअप, एक अनुक्रमणिका फ़ाइल और एक टेबल फ़ाइल को टटोलते हुए एक बहुत बड़ी सारणी मानते हुए । यह MySQL के दृष्टिकोण से काफी धीमा है जहां सूचकांक को केवल ट्रैवर्स किया जाना चाहिए और इंडेक्स में पंक्ति समाहित है।
भौतिक ऑर्डर स्कैन बहुत बेहतर प्रदर्शन करते हैं, यादृच्छिक डिस्क I / O को कम करते हैं जहां महत्वपूर्ण संख्या में पंक्तियों को संसाधित किया जाना है।
द्वितीयक सूचकांक स्कैन MySQL से बेहतर प्रदर्शन करते हैं क्योंकि तालिका के भौतिक भाग को प्राप्त करने के लिए केवल एक सूचकांक का पता लगाया जाना चाहिए।
इस मॉडल में, इंडेक्स अक्सर आवश्यक होते हैं लेकिन इंडेक्स का उपयोग करने पर प्लानर को अधिक स्वतंत्रता होती है, और एक का उपयोग नहीं करने के निहितार्थ अक्सर बहुत गंभीर होते हैं। तालिकाओं को आम तौर पर अनुकूलित किया जाता है (पाइक लुकअप में विशेषज्ञता के बजाय) और इसलिए बहुत कम अनुक्रमित की आवश्यकता होती है।
टी एल; डॉ
अपने RDBMS को जानें।