| From: | Neil Conway <neilc(at)samurai(dot)com> |
|---|---|
| To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
| Cc: | Christopher Browne <cbbrowne(at)acm(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Seqscan in MAX(index_column) |
| Date: | 2003-09-05 02:16:50 |
| Message-ID: | 1062728210.360.14.camel@tokyo |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, 2003-09-04 at 22:02, Bruce Momjian wrote:
> My idea is that if a transaction doing a COUNT(*) would first look to
> see if there already was a visible cached value, and if not, it would do
> the COUNT(*) and insert into the cache table. Any INSERT/DELETE would
> remove the value from the cache. As I see it, the commit of the
> INSERT/DELETE transaction would then auto-invalidate the cache at the
> exact time the transaction commits. This would allow MVCC visibility of
> the counts.
But this means that some of the time (indeed, *much* of the time),
COUNT(*) would require a seqscan of the entire table. Since at many
sites that will take an enormous amount of time (and disk I/O), that
makes this solution infeasible IMHO.
In general, I don't think this is worth doing.
-Neil
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2003-09-05 02:20:22 | Re: Seqscan in MAX(index_column) |
| Previous Message | Bruce Momjian | 2003-09-05 02:02:45 | Re: Seqscan in MAX(index_column) |