Being primarily an application developer, I find it off putting that
your answer to this performance issue is to not let anyone ever do it.
How do you page through millions of rows then? We can't rely on
auto_incremnt to always get smaller when paging backwards. Not all data
is date ordered. There is not always a "where keyfield < 12345"
available for these types of paging scenarios. As a "good" developer, I
don't do it because MySQL really, really sucks at it. But, if there is a
solution that can help large offsets, I would think the ideals behind
Drizzle would be to fix what MySQL screwed up, not to disallow the feature.
Shouldn't the first response to any problem be "Yes, that is a problem.
How can we fix the problem?"
Brian.
--------
http://brian.moonspot.net/
On 3/13/10 9:53 AM, Rob Wultsch wrote:
On Sat, Mar 13, 2010 at 8:21 AM, MARK CALLAGHAN<[email protected]> wrote:
On Sat, Mar 13, 2010 at 12:59 AM, Yuan Wang<[email protected]> wrote:
I think Drizzle should consider the ability to push down OFFSET to the
storage engine. LIMIT/OFFSET is very common in most Web applications.
Where there are lists, there are LIMIT/OFFSETs. For example, each user
in Blog has a list of his articles. For this list could be long, we
display it in pages, using the following SQL:
This is a nice description of the problem and the feature that you
need. But I have been burned so many times in production by queries
with large offsets that I also want a feature to allow me to either
ban queries with an offset or set a limit on the max offset that can
be used. Of course, I can do that whether or not the optimization you
have requested is supported.
Note that I don't write SQL, I just debug it and make it less slow and
this was written from experience --
http://www.facebook.com/note.php?note_id=206034210932
I have also seen this issue many times in production. Someone builds
an app that allows pagination and the db is populated* with a
significant amount of data. Later on a bot (I assume) discovers the
app and tries to index the entire damn thing. This makes servers sad
and no one likes a sad server.
I agree that It would be useful to have a setting MAX_OFFSET like
MAX_JOIN_SIZE (it would be awesome if that actually worked well, but
that is another discussion).
* In some contexts populated can be replaced with spammed to hell.
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp