जवाबों:
टॉम लेन से सबसे अच्छा स्पष्टीकरण आता है , जो कि एल्गोरिथ्म का लेखक है जब तक कि मैं गलत नहीं हूँ। विकिपीडिया लेख भी देखें ।
संक्षेप में, यह एक seq स्कैन की तरह एक सा है। अंतर यह है कि हर डिस्क पृष्ठ पर जाने के बजाय, एक बिटमैप इंडेक्स स्कैन एंड्स और ओआरएस लागू इंडेक्स को एक साथ करता है, और केवल उन डिस्क पृष्ठों पर जाता है जिन्हें इसकी आवश्यकता है।
यह एक इंडेक्स स्कैन से अलग होता है, जहां अनुक्रम में पंक्ति द्वारा सूचकांक का दौरा किया जाता है - जिसका अर्थ है कि एक डिस्क पृष्ठ कई बार विज़िट किया जा सकता है।
पुन: आपकी टिप्पणी में प्रश्न ... हां, यह बिल्कुल है।
एक इंडेक्स स्कैन एक-एक करके पंक्तियों के माध्यम से जाएगा, डिस्क पृष्ठों को बार-बार खोलना, जितनी बार आवश्यक हो (कुछ निश्चित रूप से स्मृति में रहेगा, लेकिन आपको बिंदु मिलता है)।
एक बिटमैप इंडेक्स स्कैन क्रमिक रूप से डिस्क पृष्ठों की एक छोटी सूची खोलेगा, और हर एक में प्रत्येक लागू पंक्ति को पकड़ लेगा (इसलिए तथाकथित रीचेक कंडस जो आप क्वेरी योजनाओं में देखते हैं)।
ध्यान दें, एक तरफ के रूप में, कैसे क्लस्टरिंग / पंक्ति क्रम किसी भी विधि के साथ संबंधित लागतों को प्रभावित करता है। यदि यादृच्छिक क्रम में सभी जगह पंक्तियाँ हैं, तो एक बिटमैप इंडेक्स सस्ता होगा। (और, वास्तव में, यदि वे वास्तव में सभी जगह हैं, तो एक seq स्कैन सबसे सस्ता होगा, क्योंकि बिटमैप इंडेक्स स्कैन कुछ ओवरहेड के बिना नहीं होता है।)
index-only scan
जब क्वेरी में केवल अनुक्रमित कॉलम एक्सेस किया जाता है। इस स्थिति में, index-only scan
हीप (डेटा पेज) डेटा तक पहुंचने की आवश्यकता नहीं है: postgresql.org/docs/12/indexes-index-only-scans.html