Re: Minmax indexes
Andres Freund <andres@2ndquadrant.com>
From: Andres Freund <andres@2ndquadrant.com>
To: Chris Travers <chris@2ndquadrant.com>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>,
Heikki Linnakangas <hlinnakangas@vmware.com>,
Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2013-09-16T10:25:10Z
Lists: pgsql-hackers
On 2013-09-16 11:19:19 +0100, Chris Travers wrote: > > > > On 16 September 2013 at 11:03 Heikki Linnakangas <hlinnakangas@vmware.com> > > wrote: > > > > > Something like this seems completely sensible to me: > > > > create index i_accounts on accounts using minmax (ts) where valid = true; > > > > The situation where that would be useful is if 'valid' accounts are > > fairly well clustered, but invalid ones are scattered all over the > > table. The minimum and maximum stoed in the index would only concern > > valid accounts. Yes, I wondered the same myself. > Here's one that occurs to me: > > CREATE INDEX i_billing_id_mm ON billing(id) WHERE paid_in_full IS NOT TRUE; > > Note that this would be a frequently moving target and over years of billing, > the subset would be quite small compared to the full system (imagine, say, 50k > rows out of 20M). In that case you'd just use a normal btree index, no? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Refactor per-page logic common to all redo routines to a new function.
- f8f4227976a2 9.5.0 cited
-
Reduce use of heavyweight locking inside hash AM.
- 76837c1507cb 9.3.0 cited
-
Scan the buffer pool just once, not once per fork, during relation drop.
- ece01aae4792 9.2.0 cited
-
Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
- 9e2a87b62db8 7.1.1 cited