Re: Better index stategy for many fields with few values

From: "Jim C(dot) Nasby" <jnasby(at)pervasive(dot)com>
To: Markus Schaber <schabi(at)logix-tt(dot)com>
Cc: Oscar Picasso <oscgoogle(at)yahoo(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Better index stategy for many fields with few values
Date: 2006-04-12 20:44:22
Message-ID: 20060412204421.GK49405@pervasive.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Wed, Apr 12, 2006 at 02:59:32PM +0200, Markus Schaber wrote:
> > I was thinking about using a multicolumns index, but I have read that
> > we should limit multicolumns indice to at most 2 or 3 columns.
>
> Yes, that's true, the index overhead gets too high.
>
> > I was also thinking about about using a functional index.
>
> If there's a logical relation between those values that they can easily
> combined, that may be a good alternative.

How would that be any better than just doing a multi-column index?

> I just had another weird idea:
>
> As your paramXX values can have only 10 parameters, it also might be
> feasible to use a bunch of 10 conditional indices, like:
>
> CREATE INDEX foo1 ON table (param1, param2 WHERE param0='1st value';
> CREATE INDEX foo2 ON table (param1, param2 WHERE param0='2nd value';
> CREATE INDEX foo3 ON table (param1, param2 WHERE param0='3rd value';
> [...]

Not all that weird; it's known as index partitioning.
--
Jim C. Nasby, Sr. Engineering Consultant jnasby(at)pervasive(dot)com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Jim C. Nasby 2006-04-12 20:59:14 Re: FOREIGN KEYS vs PERFORMANCE
Previous Message Bruce Momjian 2006-04-12 19:56:17 Re: bad performance on Solaris 10