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