Re: cache table - Mailing list pgsql-performance

From scott.marlowe
Subject Re: cache table
Date
Msg-id Pine.LNX.4.33.0405040748311.30999-100000@css120.ihs.com
Whole thread Raw
In response to cache table  (Joseph Shraibman <jks@selectacast.net>)
Responses Re: cache table
List pgsql-performance
On Mon, 3 May 2004, Joseph Shraibman wrote:

> I have a big table with some int fields.  I frequently need to do
> queries like:
>
> SELECT if2, count(*) FROM table WHERE if1 = 20 GROUP BY if2;
>
> The problem is that this is slow and frequently requires a seqscan. I'd
> like to cache the results in a second table and update the counts with
> triggers, but this would a) require another UPDATE for each
> INSERT/UPDATE which would slow down adding and updating of data and b)
> produce a large amount of dead rows for vacuum to clear out.
>
> It would also be nice if this small table could be locked into the pg
> cache somehow.  It doesn't need to store the data on disk because the
> counts can be generated from scratch?

I think you might be interested in materialized views.  You could create
this as a materialized view which should be very fast to just select *
from.

While materialized views aren't a standard part of PostgreSQL just yet,
there is a working implementation available from Jonathan Gardner at:

http://jonathangardner.net/PostgreSQL/materialized_views/matviews.html

It's all implemented with plpgsql and is quite interesting to read
through.  IT has a nice tutorial methodology to it.


pgsql-performance by date:

Previous
From: "Aaron Werman"
Date:
Subject: Re: linux distro for better pg performance
Next
From: Joseph Shraibman
Date:
Subject: Re: cache table