PostgreSQL भौतिक रूप से डिस्क पर नए रिकॉर्ड का आदेश कैसे देता है (प्राथमिक कुंजी पर क्लस्टर के बाद)?


9

यह जानने की आवश्यकता है कि PostgreSQL डिस्क पर कैसे रिकॉर्ड करता है। इस मामले में, मैं डॉक्स में बताए गए सूचकांक संयोजन का लाभ उठाना चाहूंगा, जैसा कि मैं समझता हूं कि मिलान पंक्तियों को प्राप्त करने के लिए बिटमैप का उपयोग करता है और उन्हें उनके भौतिक स्थान के अनुसार वापस लौटाता है। विचाराधीन तालिका को इसकी प्राथमिक कुंजी द्वारा क्लस्टर किया गया है।

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

सारांश में, PostgreSQL अपने नए रिकॉर्ड्स का आदेश कैसे देता है, खासकर क्लस्टरिंग के बाद?

बहुत बहुत धन्यवाद!

जवाबों:


9

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

एक ग्राहक संचालन सभी पंक्तियों को सॉर्ट करता है लेकिन वास्तव में प्रभावित नहीं करता है कि पोस्टग्रैस्कल कैसे पंक्तियों को जोड़ते हैं। तो डेटा सॉर्ट नहीं किया जाएगा। हालाँकि postgresql आंकड़े रखता है जिसके बीच तालिकाओं में पंक्तियों के क्रम और उस स्तंभ के क्रमबद्ध क्रम के बीच प्रत्येक स्तंभ के लिए सहसंबंध है। तो योजनाकार अभी भी आँकड़ों के आधार पर यह योजना का अनुकूलन कर सकता है जो यह बताता है कि तालिका अभी भी अधिकतर क्रमबद्ध है भले ही कुछ पंक्तियों को क्लस्टर ऑपरेशन के बाद जोड़ा गया हो (या अपडेट द्वारा स्थानांतरित किया गया हो)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.