Re: Counting all results before LIMIT

From: Edson Richter <edsonrichter(at)hotmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Counting all results before LIMIT
Date: 2012-10-05 15:37:42
Message-ID: BLU0-SMTP714BF45A98C4335C5D9B04CF8B0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Em 05/10/2012 12:17, Mike Christensen escreveu:
> You could use a windowing function. Something like:
>
> SELECT x, y, z, COUNT(*) OVER()
> FROM Foo
> LIMIT 50;

Good to know! I'll give a try!

>
> On Fri, Oct 5, 2012 at 8:02 AM, P Gouv <kadmos(at)gmail(dot)com
> <mailto:kadmos(at)gmail(dot)com>> wrote:
>
> You cant. There is an article about count performance. Generally
> its slow but latest version 9.2 i think supports index for count
> under some condition.But 300 isnt that much that you should
> worry.Another modern solution is to not count results just add one
> more at limit to see if there is next page.
>

I've used two queries for >100 000 (with filters applied - table has > 1
800 000 records), and is very acceptable (<200ms with 8Gb and Xeon dual
core).

Edson.
>
>
>
> On Fri, Oct 5, 2012 at 5:29 PM, Moshe Jacobson <moshe(at)neadwerx(dot)com
> <mailto:moshe(at)neadwerx(dot)com>> wrote:
>
> We have a PHP web application that pulls results from the
> database and paginates them.
> We show e.g. "1-50 of 300" so the user knows how many total
> results there are, and which ones are currently being displayed.
> To achieve this, we use a query with LIMIT...OFFSET to get the
> displayed results, and we do another identical query using
> count(*) to get the total count.
> Is there a more efficient way to do this that does not require
> us to do two queries? I just feel that it's a waste of
> resources the way we do it.
>
> Thanks!
>
> --
> Moshe Jacobson
> Nead Werx, Inc. | Senior Systems Engineer
> 2323 Cumberland Parkway, Suite 201 | Atlanta, GA 30339
> moshe(at)neadwerx(dot)com <mailto:moshe(at)neadwerx(dot)com> |
> www.neadwerx.com <http://www.neadwerx.com/>
>
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Moshe Jacobson 2012-10-05 15:40:27 Re: Re: What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS?
Previous Message Phoenix Kiula 2012-10-05 15:37:26 Re: [Pgbouncer-general] Again, problem with pgbouncer