Re: Shortcutting too-large offsets? - Mailing list pgsql-performance

From Tom Lane
Subject Re: Shortcutting too-large offsets?
Date
Msg-id 11059.1317409002@sss.pgh.pa.us
Whole thread Raw
In response to Re: Shortcutting too-large offsets?  (Josh Berkus <josh@agliodbs.com>)
Responses Re: Shortcutting too-large offsets?  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-performance
Josh Berkus <josh@agliodbs.com> writes:
>> In principle, yeah, we could make it do that, but it seems like a likely
>> source of maintenance headaches.  This example is not exactly compelling
>> enough to make me want to do it.  Large OFFSETs are always going to be
>> problematic from a performance standpoint, and the fact that we could
>> short-circuit this one corner case isn't really going to make them much
>> more usable.

> It's not that uncommon of a corner case though; it's one which happens
> all the time in webapps which paginate.  People just have to ask for a
> page after the end.  It's really a question of how simple the code to
> make the optimization would be; if it would be a 5-line patch, then it's
> worth it; if it would be a 110-line refactor, no.

No, it's really a question of whether it's worth any lines at all,
and I remain unconvinced.  If someone asks for the last page, or any
page near the end, it'll take just about the same amount of time as
asking for a page past the end.  So any app like this is going to have
sucky performance, and kluging the corner case isn't going to help much.

            regards, tom lane

pgsql-performance by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Shortcutting too-large offsets?
Next
From: Ben Chobot
Date:
Subject: Re: array_except -- Find elements that are not common to both arrays