From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Joseph Shraibman <jks(at)selectacast(dot)net> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Jean-Christophe Boggio <cat(at)thefreecat(dot)org>, PostgreSQL General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Weird indices |
Date: | 2001-02-21 02:05:18 |
Message-ID: | Pine.BSF.4.21.0102201759190.5329-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, 20 Feb 2001, Joseph Shraibman wrote:
> Err I wan't complaing about count(*) per se, I was just using that as a
> simple example of something that should be done with an index. Because
> if the index doesn't have to worry about rows that aren't current then
> you don't even have to go into the heap because the index alone should
> have enough information to do that. If it doesn't have to worry about
> rows that aren't visible.
But the problem is how do you deal with concurrency? At any given point
in time there are different sets of rows that are "current" for different
transactions. They all need to be in the index so that index scans work
for those transactions (unless you were to do something hacky to get
around it) but not all of them are valid for each transaction, you still
have to get that information somehow. You can keep the transaction
information in the index but I know Tom's talked this idea down in the
past (it's come up on hackers before), I don't really remember what the
full arguments were both ways.
From | Date | Subject | |
---|---|---|---|
Next Message | Rob Arnold | 2001-02-21 02:31:26 | Re: copying tables |
Previous Message | Ian Lance Taylor | 2001-02-21 01:42:52 | Re: Weird indices |