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

एक क्वेरी योजना में बिटमैप हीप स्कैन क्या है?

सबसे अच्छा स्पष्टीकरण टॉम लेन से आता है, जो एल्गोरिदम के लेखक हैं जब तक कि मैं गलत नहीं कर रहा हूं। विकिपीडिया लेख भी देखें।

संक्षेप में, यह एक seq स्कैन जैसा है। अंतर यह है कि, प्रत्येक डिस्क पृष्ठ पर जाने के बजाय, एक बिटमैप अनुक्रमणिका ANDs और ORs लागू अनुक्रमणिकाओं को एक साथ स्कैन करती है, और केवल उन डिस्क पृष्ठों पर जाती है जिनकी उसे आवश्यकता होती है।

यह एक इंडेक्स स्कैन से अलग है, जहां इंडेक्स को पंक्ति दर पंक्ति क्रम में देखा जाता है -- यानी डिस्क पेज को कई बार देखा जा सकता है।

पुन::आपकी टिप्पणी में प्रश्न... हां, ठीक यही है।

एक इंडेक्स स्कैन पंक्तियों के माध्यम से एक-एक करके जाएगा, डिस्क पेजों को बार-बार खोलना, जितनी बार आवश्यक हो (कुछ निश्चित रूप से स्मृति में रहेंगे, लेकिन आपको बिंदु मिल जाएगा)।

एक बिटमैप इंडेक्स स्कैन क्रमिक रूप से डिस्क पृष्ठों की एक छोटी-सूची को खोलेगा, और प्रत्येक में प्रत्येक लागू पंक्ति को पकड़ लेगा (इसलिए तथाकथित रीचेक कंडी जिसे आप क्वेरी योजनाओं में देखते हैं)।

ध्यान दें, एक तरफ के रूप में, क्लस्टरिंग/पंक्ति क्रम किसी भी विधि से संबंधित लागतों को कैसे प्रभावित करता है। यदि पंक्तियाँ सभी जगह यादृच्छिक क्रम में हैं, तो बिटमैप इंडेक्स सस्ता होगा। (और, वास्तव में, यदि वे वास्तव में सभी हैं जगह पर, एक seq स्कैन सबसे सस्ता होगा, क्योंकि बिटमैप इंडेक्स स्कैन कुछ ओवरहेड के बिना नहीं है।)




  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. मैं PostgreSQL 9.1+ में मॉड्यूल कैसे आयात करूं या एक्सटेंशन कैसे स्थापित करूं?

  3. एसक्यूएल - एकाधिक तालिकाओं से दृश्य बनाएं

  4. कैसे cbrt () PostgreSQL में काम करता है

  5. यदि मौजूद नहीं है तो PostgreSQL तालिका बनाएं