PostgreSQL एक इंडेक्स का उपयोग तभी करेगा जब उसे लगता है कि यह उस तरह से सस्ता होगा। boolean पर एक इंडेक्स कॉलम, जो केवल दो संभावित मान ले सकता है, लगभग कभी भी उपयोग नहीं किया जाएगा, क्योंकि इंडेक्स और टेबल पर यादृच्छिक I/O का उपयोग करने की तुलना में पूरी तालिका को अनुक्रमिक रूप से पढ़ना सस्ता है यदि तालिका के उच्च प्रतिशत को पुनर्प्राप्त करना है ।
boolean . पर एक इंडेक्स कॉलम केवल उपयोगी है
-
डेटा वेयरहाउस परिदृश्यों में, जहां इसे बिटमैप इंडेक्स स्कैन . के माध्यम से अन्य इंडेक्स के साथ जोड़ा जा सकता है ।
-
यदि तालिका के केवल एक छोटे से अंश का मान
TRUE. है (याFALSEउस बात के लिए)। इस मामले में आंशिक अनुक्रमणिका . बनाना सबसे अच्छा है पसंद हैCREATE INDEX ON mytab((1)) WHERE boolcolumn;