Bitmappen av sidor skapas dynamiskt för varje fråga. Det cachelagras inte eller återanvänds och kasseras i slutet av bitmappsindexsökningen.
Det är inte meningsfullt att skapa sidans bitmapp i förväg eftersom innehållet beror på frågepredikaten .
Säg att du söker efter x=1 and y=2 . Du har b-tree index på x och y . PostgreSQL kombinerar inte x och y i en bitmapp och sök sedan i bitmappen. Den skannar index x för sidadressen för alla sidor med x=1 och gör en bitmapp där sidorna som kan innehålla x=1 är sanna. Sedan skannar den y letar efter sidadresserna där y kan vara lika med 2 , gör en bitmapp från det. Sedan OCH hjälper den dem att hitta sidor där både x=1 och y=2 kan vara sant. Slutligen skannar den själva tabellen, läser endast de sidor som kan innehålla kandidatvärden, läser varje sida och behåller endast raderna där x=1 and y=2 .
Nu, om du letar efter något som ett cachat, förbyggt bitmappsindex, finns det något sådant i PostgreSQL 9.5:BRIN-index . Dessa är avsedda för mycket stora tabeller och ger ett sätt att hitta intervall i tabellen som kan hoppa över eftersom de är kända för att inte innehålla ett önskat värde.