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