perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frank Wiles <fr...@wiles.org>
Subject Re: Database transaction across multiple web requests
Date Fri, 31 Mar 2006 15:53:55 GMT
On Fri, 31 Mar 2006 10:34:58 -0500
Sean Davis <sdavis2@mail.nih.gov> wrote:

> 
> 
> 
> On 3/31/06 10:01 AM, "Frank Wiles" <frank@wiles.org> wrote:
> 
> > On Fri, 31 Mar 2006 14:47:37 +0200
> > Issac Goldstand <margol@beamartyr.net> wrote:
> > 
> >> Granted, I use a few MySQL features for this; I'm not sure if LIMIT
> >> exists in postgresql, and I'm fairly sure that the
> >> SQL_CALC_FOUND_ROWS directive (which will return the total rows in
> >> a select statement regardless of the LIMIT directives) doesn't...
> > 
> >   PostgreSQL has LIMIT... it's a SQL standard.  And I don't really
> > see why you would need SQL_CALC_FOUND_ROWS unless you where going to
> >   show the total number of pages.  For simple Next/Previous paging
> >   you just keep going until you fall off the end.
> > 
> >   If you need to get a count you can just do a count() on a
> > particular column without the LIMIT and get a total.
> 
> In postgres, a count(*) can be fairly time-consuming, so a
> quick-and-dirty hack is to parse the output of the "EXPLAIN ..."
> query to get the estimated number of rows, which is often just fine
> as an estimate.  If the database is vacuumed often or is basically
> query-only, these numbers will often be very close or the same as the
> real thing.

  Right count(*) is very slow in PostgreSQL, but there is plans to 
  improve it in the next release.  A much faster way is to do the
  count on a particular column such as count(id).  

  ---------------------------------
   Frank Wiles <frank@wiles.org>
   http://www.wiles.org
 ---------------------------------


Mime
View raw message