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 <kad...@gmail.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 <mo...@neadwerx.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
>> mo...@neadwerx.com | www.neadwerx.com
>>
>>
>

Reply via email to