Search Postgresql Archives

Re: Indices for select count(*)?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter Eisentraut <peter_e@xxxxxxx> writes:
> One way to conceptually tackle this count(*) issue would be to create a new 
> index type for it.  The index type would (logically) just need to implement 
> insert and delete operations and keep a running count with a big lock around 
> it.  Users could then choose to trade off concurrent performance against the 
> speed of count() by creating or dropping that index.  Implementing that type 
> of index might not even be that hard but convincing the planer and executor 
> to use it without too many hardcoded cases seems more challenging.

It's not that easy --- in the MVCC world there simply isn't a unique
count that is the right answer for every observer.  But the idea of
packaging a count(*) mechanism as an index type seems like it might be
a good one.  I don't think the planner objection need be taken too
seriously: we already have a good big wart in there for recognizing
MIN/MAX indexability, and this sort of transformation would fit pretty
naturally with what's already done in planagg.c.

			regards, tom lane


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux