Re: [SQL] OFFSET impact on Performance???

From: Ragnar Hafstað <gnari(at)simnet(dot)is>
To: pgsql-performance(at)postgresql(dot)org
Cc: Andrei Bintintan <klodoma(at)ar-sd(dot)net>, pgsql-sql(at)postgresql(dot)org
Subject: Re: [SQL] OFFSET impact on Performance???
Date: 2005-01-20 19:12:06
Message-ID: 1106248326.22416.22.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance pgsql-sql

On Thu, 2005-01-20 at 11:59 -0500, Greg Stark wrote:

> The best way to do pages for is not to use offset or cursors but to use an
> index. This only works if you can enumerate all the sort orders the
> application might be using and can have an index on each of them.
>
> To do this the query would look something like:
>
> SELECT * FROM tab WHERE col > ? ORDER BY col LIMIT 50
>
> Then you take note of the last value used on a given page and if the user
> selects "next" you pass that as the starting point for the next page.

this will only work unchanged if the index is unique. imagine , for
example if you have more than 50 rows with the same value of col.

one way to fix this is to use ORDER BY col,oid

gnari

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Steve Wampler 2005-01-20 19:13:17 Re: PostgreSQL clustering VS MySQL clustering
Previous Message Darcy Buskermolen 2005-01-20 19:07:23 Re: PostgreSQL clustering VS MySQL clustering

Browse pgsql-sql by date

  From Date Subject
Next Message Ragnar Hafstað 2005-01-20 19:23:12 Re: [SQL] OFFSET impact on Performance???
Previous Message Spiegelberg, Greg 2005-01-20 18:04:02 Re: [SQL] OFFSET impact on Performance???