From: | Mike Christensen <mike(at)kitchenpc(dot)com> |
---|---|
To: | P Gouv <kadmos(at)gmail(dot)com> |
Cc: | Moshe Jacobson <moshe(at)neadwerx(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Counting all results before LIMIT |
Date: | 2012-10-05 15:17:52 |
Message-ID: | CABs1bs07p6UB3oV=Da3C7+SEB80WnEyHkEAOJ9G6t4m4Syj4pw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
You could use a windowing function. Something like:
SELECT x, y, z, COUNT(*) OVER()
FROM Foo
LIMIT 50;
On Fri, Oct 5, 2012 at 8:02 AM, P Gouv <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.
>
>
> On Fri, Oct 5, 2012 at 5:29 PM, Moshe Jacobson <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 | www.neadwerx.com
>>
>>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Phoenix Kiula | 2012-10-05 15:37:26 | Re: [Pgbouncer-general] Again, problem with pgbouncer |
Previous Message | Ivan Voras | 2012-10-05 15:13:33 | Re: Re: What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS? |