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

Postgresql में बिटमैप इंडेक्स को समझना

पृष्ठों का बिटमैप प्रत्येक क्वेरी के लिए गतिशील रूप से बनाया गया है। इसे कैश्ड या पुन:उपयोग नहीं किया जाता है, और बिटमैप इंडेक्स स्कैन के अंत में छोड़ दिया जाता है।

पृष्ठ बिटमैप को पहले से बनाने का कोई मतलब नहीं है क्योंकि इसकी सामग्री क्वेरी विधेय पर निर्भर करती है

मान लें कि आप x=1 and y=2 खोज रहे हैं . आपके पास x . पर b-tree अनुक्रमणिकाएं हैं और y . PostgreSQL x को संयोजित नहीं करता है और y बिटमैप में फिर बिटमैप खोजें। यह इंडेक्स x . को स्कैन करता है x=1 . वाले सभी पृष्ठों के पृष्ठ पते के लिए और एक बिटमैप बनाता है जहां वे पृष्ठ हो सकते हैं जिनमें x=1 . हो सकता है सच हैं। फिर यह y . को स्कैन करता है पृष्ठ पतों की तलाश में जहां y बराबर हो सकता है 2 , उसी से बिटमैप बनाना। फिर यह उन्हें उन पृष्ठों को खोजने के लिए देता है जहां दोनों x=1 और y=2 सच हो सकता है। अंत में, यह तालिका को स्वयं स्कैन करता है, केवल उन पृष्ठों को पढ़ता है जिनमें उम्मीदवार मान हो सकते हैं, प्रत्येक पृष्ठ को पढ़ना और केवल पंक्तियों को रखना जहां x=1 and y=2

अब, यदि आप कैश्ड, पूर्व-निर्मित बिटमैप इंडेक्स जैसी किसी चीज़ की तलाश कर रहे हैं, तो PostgreSQL 9.5 में ऐसा कुछ है:BRIN अनुक्रमणिका . ये बहुत बड़ी तालिकाओं के लिए अभिप्रेत हैं, और तालिका की श्रेणियों को खोजने का एक तरीका प्रदान करते हैं जिन्हें छोड़ दिया जा सकता है क्योंकि वे जानते हैं कि उनमें वांछित मान नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हेरोकू - डेटाबेस से डेटा को स्थानीय डेटाबेस में कैसे खींचें?

  2. Java BigDecimal को स्टोर करने के लिए किस PostgreSQL कॉलम प्रकार का उपयोग किया जाना चाहिए?

  3. 'इसी तरह' का उपयोग कर PostgreSQL में क्वेरी प्रदर्शन

  4. एक कमांड में एक पंक्ति चुनें या डालें

  5. टाइमस्टैम्प और पूर्णांक प्रकार के दो कॉलम कैसे जोड़ें