Ignoring the limit problem for just a moment, what are the performance
characteristics?  Does this form have a less steep rows vs. time curve?

As for the limit problem, that sounds a bit like a bug in MySQL and should
be addressed as such.

-JF

> -----Original Message-----
> From: MySQL List [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 27, 2002 2:44 PM
> To: Jon Frisby
> Cc: mysql
> Subject: Re: Rand slowness.
>
>
> I tried this, but it seems to be ignoring the LIMIT 3, since it
> is returning
> all the rows.
>
>
> > Try:
> > SELECT RAND() AS r, * FROM table ORDER BY r LIMIT 3;
> >
> > Off the top of my head, I'd guess that the reason for the
> slowdown has to
> do
> > with MySQL doing a new RAND() call for every comparison in the sort
> > operation -- it wont stop sorting until it happens to get values back in
> the
> > comparisons indicating that it has a "correct" ordering.  The
> odds of this
> > happening in a timely fashion *decrease* quite quickly as the number of
> > comparisons increases.
> >
> > Selecting a random value *PER ROW* ensures that a comparison between any
> two
> > given rows will always have the same result the second time you
> try it as
> it
> > did the first time you try it and will thus ensure deterministic and
> > reasonable sorting behavior.
> >
> > -JF
> >
> > > -----Original Message-----
> > > From: MySQL List [mailto:[EMAIL PROTECTED]]
> > > Sent: Thursday, June 27, 2002 12:05 PM
> > > To: mysql
> > > Subject: Rand slowness.
> > >
> > >
> > > Hi,
> > > Is there a quicker way to get a selection of random rows than RAND()?
> > > I basically use:
> > >
> > > SELECT * FROM table ORDER BY RAND() LIMIT 3;
> > >
> > > But I find that as the # of rows increases in table, it keeps
> > > taking longer
> > > and longer to get a result back. And I am talking a large increase,
> > > basically 50 rows took about 1 second, 700 rows now takes almost a
> minute.
> > >
> > > I am not sure why the # of rows would affect RAND.
> > >
> > > I am using the latest version of Mysql and php4 to get the rows.
> > >
> > >
> > > ---------------------------------------------------------------------
> > > Before posting, please check:
> > >    http://www.mysql.com/manual.php   (the manual)
> > >    http://lists.mysql.com/           (the list archive)
> > >
> > > To request this thread, e-mail <[EMAIL PROTECTED]>
> > > To unsubscribe, e-mail
> > > <[EMAIL PROTECTED]>
> > > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> > >
> > >
> >
>
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to