bitmask index
| От | Marcus Engene | 
|---|---|
| Тема | bitmask index | 
| Дата | |
| Msg-id | 4E025E54.6020402@engene.se обсуждение исходный текст  | 
		
| Ответы | 
                	
            		Re: bitmask index
            		
            		 | 
		
| Список | pgsql-performance | 
Hi list,
I use Postgres 9.0.4.
I have some tables with bitmask integers. Set bits are the interesting
ones. Usually they are sparse.
-- Many rows & columns
CREATE TABLE a_table
(
  objectid                   INTEGER PRIMARY KEY NOT NULL
,misc_bits                  INTEGER DEFAULT 0 NOT NULL
...
)
WITHOUT OIDS;
...and when I use it I...
select
     ...
from
     a_table
where
     0 <> (misc_bits & (1 << 13))
Now the dear tables have swollen and these scans aren't as nice anymore.
What indexing strategies would you use here?
External table?:
create table a_table_feature_x
(
  objectid                   INTEGER PRIMARY KEY NOT NULL -- fk to
a_table.objectid
)
WITHOUT OIDS;
Internal in the big mama table?:
CREATE TABLE a_table
(
  objectid                   INTEGER PRIMARY KEY NOT NULL
,misc_bits                  INTEGER DEFAULT 0 NOT NULL
,feature_x                  VARCHAR(1) -- 'y' or null
...
)
WITHOUT OIDS;
CREATE INDEX a_table_x1 ON a_table(feature_x); -- I assume nulls are not
here
Some other trick?
Thanks,
Marcus
		
	В списке pgsql-performance по дате отправления: