Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

क्या बढ़ा हुआ कॉलम असंतुलित कॉलम पर बी-ट्री इंडेक्स बनाता है?

Oracle की अनुक्रमणिका कभी भी "असंतुलित" नहीं होती:अनुक्रमणिका का प्रत्येक पत्ता किसी अन्य पत्ती की तरह ही गहराई पर होता है।

कोई भी पेज स्प्लिट अपने आप में एक नया स्तर पेश नहीं करता है:एक लीफ पेज नए पेजों के लिए पैरेंट नहीं बनता है जैसे कि यह एक गैर-सेल्फ-बैलेंसिंग ट्री पर होगा।

इसके बजाय, विभाजित पृष्ठ के लिए एक सहोदर बनाया जाता है और नया रिकॉर्ड (साथ ही संभवतः पुराने पृष्ठ के कुछ रिकॉर्ड) नए पृष्ठ पर चला जाता है। पैरेंट में नए पेज के लिए एक पॉइंटर जोड़ा जाता है।

अगर पैरेंट पेज में भी जगह नहीं है (नए बनाए गए लीफ पेज पर पॉइंटर को स्वीकार नहीं कर सकता), तो यह भी विभाजित हो जाता है, और इसी तरह।

ये विभाजन मूल पृष्ठ तक फैल सकते हैं, जिसका विभाजन ही एकमात्र ऐसी चीज है जो सूचकांक की गहराई को बढ़ाता है (और यह सभी पृष्ठों के लिए एक ही बार में करता है)।

अनुक्रमणिका पृष्ठ अतिरिक्त रूप से डबल-लिंक्ड सूचियों में व्यवस्थित होते हैं, प्रत्येक सूची अपने स्तर पर। यदि पेड़ असंतुलित होता तो यह असंभव होता।

अगर master_id स्वत:वृद्धि हुई है इसका मतलब है कि सभी विभाजन अंत में होते हैं (जैसे 90/10 कहा जाता है) स्प्लिट्स) जो सबसे सघन इंडेक्स को संभव बनाता है।

नहीं, उपरोक्त कारणों से ऐसा नहीं होगा।

अगर आप slave में शामिल होते हैं करने के लिए master अक्सर, आप एक CLUSTER बनाने पर विचार कर सकते हैं master_id . द्वारा अनुक्रमित दो तालिकाओं में से . इसका अर्थ है कि दोनों तालिकाओं के रिकॉर्ड, समान master_id . साझा कर रहे हैं , उसी या आस-पास के डेटा पेजों पर जाएं जो उनके बीच बहुत तेजी से जुड़ते हैं।

जब इंजन को master . से एक रिकॉर्ड मिला , किसी अनुक्रमणिका के साथ या जो भी हो, इसका अर्थ यह भी है कि उसे पहले ही slave . के रिकॉर्ड मिल गए हैं उस master . के साथ जुड़ने के लिए . और इसके विपरीत, slave . का पता लगाना इसका अर्थ इसके master का पता लगाना भी है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रहस्यमय SQL मेरी संग्रहीत कार्यविधि को ORACLE पर क्रियान्वित करने से रोक रहा है

  2. दिनांक प्रारूप YYYY-MM-dd HH-MM-ss को कैसे क्वेरी करें?

  3. Oracle में PL SQL ब्लॉक कैसे निष्पादित करें

  4. Oracle में पासवर्ड कैसे एन्क्रिप्ट करें?

  5. जावा का उपयोग किए बिना .csv फ़ाइल को कैसे ज़िप करें और ईमेल Oracle plsql में संलग्न करें