From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: So, is COUNT(*) fast now? |
Date: | 2011-10-21 18:14:12 |
Message-ID: | CA+TgmoZd2dBR=qMqJoghSfHud45mZifw-ynRhxOEP0y-L16nVQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Oct 21, 2011 at 2:08 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> On Fri, Oct 21, 2011 at 1:18 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>> I don't know why you'd imagine that touching an index is free, or even
>>> cheap, CPU-wise. The whole point of the index-only optimization is to
>>> avoid I/O. When you try it on a case where there's no I/O to be saved,
>>> *and* no shared-buffers contention to be avoided, there's no way it's
>>> going to be a win.
>
>> Well, call me naive, but I would have thought touching six times less
>> data would make the operation run faster, not slower.
>
> It's not "touching six times less data". It's touching the exact same
> number of tuples either way, just index tuples in one case and heap
> tuples in the other.
Yeah, but it works out to fewer pages.
> You've arranged the test case so that all these
> tuples are in shared buffers already, so there's no data movement to be
> avoided. What this test case proves is that btree's overhead per index
> tuple touched is significantly more than the cost of the fastest path
> through HeapTupleSatisfiesMVCC, which I don't find surprising
> considering how much sweat has been expended on that code path over the
> years.
I think HeapTupleSatisfiesMVCC is probably being skipped anyway in
this case, since all the heap pages should be PD_ALL_VISIBLE.
> (It may well be that it's not even btree at fault but the per-tuple
> visits to the visibility map ... did you do any oprofiling yet?)
No, but I think that might be a good idea. Maybe I'll go do that.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2011-10-21 18:21:47 | psql command for bytea output |
Previous Message | Robert Haas | 2011-10-21 18:11:53 | Re: Synchronized snapshots versus multiple databases |