एक डेटाबेस वास्तव में यह पता लगाने के लिए क्या करता है कि एक चयनित कथन से क्या मेल खाता है?
कुंद होना, यह क्रूर बल की बात है। बस, यह डेटाबेस में प्रत्येक उम्मीदवार रिकॉर्ड के माध्यम से पढ़ता है और फ़ील्ड से अभिव्यक्ति से मेल खाता है। इसलिए, यदि आपके पास "सेलेक्ट * टेबल से है जहां नाम = 'फ्रेड' है, तो यह शाब्दिक रूप से प्रत्येक रिकॉर्ड के माध्यम से चलता है," नाम "फ़ील्ड को पकड़ता है, और इसकी तुलना 'फ्रेड' से करता है।
अब, यदि "table.name" फ़ील्ड को अनुक्रमित किया गया है, तो वास्तविक फ़िल्टर को लागू करने के लिए उम्मीदवार रिकॉर्ड्स का पता लगाने के लिए डेटाबेस (संभावना नहीं, लेकिन आवश्यक नहीं) का उपयोग करेगा।
यह अभिव्यक्ति को लागू करने के लिए उम्मीदवार रिकॉर्ड की संख्या को कम कर देता है, अन्यथा यह वही करेगा जो हम "टेबल स्कैन" कहते हैं, अर्थात हर पंक्ति पढ़ें।
लेकिन मौलिक रूप से, हालांकि यह रेखांकित करता है कि उम्मीदवार रिकॉर्ड वास्तविक फ़िल्टर अभिव्यक्ति को लागू करने के तरीके से अलग है, और जाहिर है, कुछ चतुर अनुकूलन हैं जो किए जा सकते हैं।
कोई डेटाबेस किसी क्वेरी से जुड़ने की व्याख्या अलग-अलग "की 1 = की 2" के साथ कैसे करता है?
खैर, एक नई "छद्म तालिका" बनाने के लिए एक जॉइन का उपयोग किया जाता है, जिस पर फ़िल्टर लगाया जाता है। तो, आपके पास फ़िल्टर मानदंड और सम्मिलित मापदंड हैं। इस "छद्म तालिका" के निर्माण के लिए जॉइन मानदंड का उपयोग किया जाता है और फिर उसी के खिलाफ फ़िल्टर लगाया जाता है। अब, जब सम्मिलित होने की व्याख्या करते हैं, तो यह फिर से फिल्टर के रूप में एक ही मुद्दा है - जानवर बल तुलना और सूचकांक "छद्म तालिका" के लिए सबसेट बनाने के लिए पढ़ता है।
डेटाबेस अपनी सभी मेमोरी को कैसे स्टोर करता है?
अच्छे डेटाबेस में से एक यह है कि यह अपने I / O बफ़र्स को कैसे प्रबंधित करता है। लेकिन यह मूल रूप से रैम ब्लॉक से डिस्क ब्लॉक से मेल खाता है। आधुनिक आभासी मेमोरी प्रबंधकों के साथ, एक सरल डेटाबेस लगभग वीएम पर अपनी मेमोरी बफर मैनेजर के रूप में भरोसा कर सकता है। उच्च अंत DB'S यह सब स्वयं करते हैं।
अनुक्रमित कैसे संग्रहीत किए जाते हैं?
बी + पेड़ आम तौर पर, आपको इसे देखना चाहिए। यह एक सीधी आगे की तकनीक है जो सालों से चली आ रही है। यह लाभ किसी भी संतुलित पेड़ के साथ साझा किया जाता है: नोड्स तक लगातार पहुंच, साथ ही सभी पत्ती नोड्स जुड़े हुए हैं ताकि आप आसानी से नोड से नोड तक महत्वपूर्ण क्रम में पार कर सकें। इसलिए, एक सूचकांक के साथ, पंक्तियों को डेटाबेस में विशिष्ट क्षेत्रों के लिए "क्रमबद्ध" माना जा सकता है, और डेटाबेस उस जानकारी का लाभ उठा सकता है जो अनुकूलन के लिए लाभ देता है। यह एक इंडेक्स के लिए हैश टेबल का उपयोग करने से अलग है, जो आपको केवल एक विशिष्ट रिकॉर्ड को तुरंत प्राप्त करने देता है। बी-ट्री में आप न केवल एक विशिष्ट रिकॉर्ड के लिए, बल्कि एक क्रमबद्ध सूची में एक बिंदु तक पहुंच सकते हैं।
डेटाबेस में भंडारण और अनुक्रमण पंक्तियों के वास्तविक यांत्रिकी वास्तव में बहुत सीधे आगे और अच्छी तरह से समझे जाते हैं। खेल बफ़र्स का प्रबंधन कर रहा है, और इन बुनियादी भंडारण मुहावरों का लाभ उठाने के लिए SQL को कुशल क्वेरी पथों में परिवर्तित कर रहा है।
उसके बाद, स्टोरेज मुहावरे के शीर्ष पर पूरे बहु-उपयोगकर्ता, लॉकिंग, लॉगिंग और लेनदेन जटिलता है।