Re: integer[] indexing.

From: Harald Fuchs <hf0722x(at)protecting(dot)net>
To: pgsql-performance(at)postgresql(dot)org
Subject: Re: integer[] indexing.
Date: 2004-10-08 12:28:52
Message-ID: puhdp5mm0r.fsf@srv.protecting.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

In article <opsfjonlc0cq72hf(at)musicbox>,
=?iso-8859-15?Q?Pierre-Fr=E9d=E9ric_Caillaud?= <lists(at)boutiquenumerique(dot)com> writes:

> disclaimer : brainless proposition

> (SELECT * FROM table WHERE (icount(ids) <= 1 AND ids[1] = 33)
> UNION ALL
> (SELECT * FROM table WHERE (icount(ids) > 1 AND ids && '{33}'));

I guess my proposition is even more brainless :-)

If 95% of all records have only one value, how about putting the first
(and most often only) value into a separate column with a btree index
on it? Something like that:

CREATE TABLE tbl (
-- other columns
id1 INT NOT NULL,
idN INT[] NULL
);

CREATE INDEX tbl_id1_ix ON tbl (id1);

If id1 is selective enough, you probably don't need another index on idn.

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message simon 2004-10-08 12:38:01 Re: Re: Data warehousing requirements
Previous Message Mike Harding 2004-10-08 12:10:29 COPY slows down?