On Mon, Mar 7, 2011 at 1:13 PM, Merlin Moncure <mmonc...@gmail.com> wrote:

> On Sun, Mar 6, 2011 at 2:57 PM, Glenn Maynard <gl...@zewt.org> wrote:
> > That's often perfectly fine, with read-heavy, single-writer workloads.
> >
> > I definitely wish there was a way to create indexes to track counters on
> > various types of queries, even if it eliminates write concurrency on
> > affected writes.  Doing it by hand is a pain.
>
> beyond what the stats system does you mean?
>

The stats system only helps for the most basic case--counting the number of
rows in a table.  In my experience that's not very common; most of the time
it's counting total results from some more interesting query, eg. for
pagination.  In my particular case, I'm caching results for SELECT COUNT(*),
expr2 FROM table WHERE expr GROUP BY expr2 (for a very limited set of
expressions).

If you aren't interested in high concurrency count it really isn't all
> that difficult -- just push table modifying queries into a procedure
> and grab rows affected.  Row level trigger can also do it but
> performance will suck unless you are already doing all row by row
> processing (in which case your performance already sucks).
>

Row triggers are fast enough for my case--it's a read-heavy workload, so
it's okay to take a bit more time inserting new data.  It's easier to ensure
consistency with row triggers, since they can be tested independently of
anything modifying the table.

-- 
Glenn Maynard

Reply via email to