From: | Gregory Stark <stark(at)enterprisedb(dot)com> |
---|---|
To: | George Oakman <oakmang(at)hotmail(dot)com> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Indexing a Bit String column |
Date: | 2009-02-24 15:35:58 |
Message-ID: | 87prh7vodd.fsf@oxford.xeocode.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
George Oakman <oakmang(at)hotmail(dot)com> writes:
> Is it all I need to do? Will PgSQL know how to index properly a Bit String
> column? Should I build the index using a special method, e.g.
> CREATE INDEX myBitStringCol_idx ON myTable USING gist(myBitStringCol);
No, the default will be to build a btree index which won't help these types of
queries at all.
You would want a GIST index if there was a built-in GIST opclass for these
kinds of queries, but sadly there isn't. You could add one fairly easily but
it would require C code. I think it would be a valuable addition to Postgres
if you do write one.
Note that something like "WHERE myBitStringCol & B'101'" might be selecting
too much of your table to make an index useful anyways. If each bit is set in
half the table then you're talking about selecting 3/4 of the table in which
case a full table scan would be more efficient than any index.
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's On-Demand Production Tuning
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2009-02-24 15:46:38 | Re: Indexing a Bit String column |
Previous Message | Martin Gainty | 2009-02-24 15:22:29 | Re: Oracle Functions to PostgreSQL |