2012-11-09 75 views
0

可能重复:
quick selection of a random row from a large table in mysql
Selecting random rows with MySQL从mysql数据库中选择一个随机记录,最好的方法?

我目前做一个模块从MySQL数据库中提取随机业务​​记录和显示记录作为内部的一个“特色业务”模块。这一切都很好,但如果这是做这件事的最好方式,我不是100%,因为我听说它不是太快?目前它非常快速,我应该认为我会得到的最大业务量大约是100-200,那么使用下面的方法还是可以的,或者对于那些记录来说事情会慢很多。

非常感谢:-)

<?php 
$result = mysql_query("SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` ORDER BY  RAND() LIMIT 0,4;"); 
$row = mysql_fetch_array($result); 
echo $row['businessname']; 
?> 

回答

0

你会与多条记录完全罚款。即使你在成千上万,你也会没事的。 Sql查询几乎总是以他们的速度给我留下深刻的印象,对于那些记录很少的查询,你会没事的。

+0

感谢您的帮助:-) –

2

看到这个问题:MySQL select 10 random rows from 600K rows fast

有做你想做什么“更好”的方式。

在100-200的企业,这可能不会有很大的区别。即使在几千年。你目前的查询被认为是“慢”的原因是MySQL正在内存中创建一个临时表来处理查询。

所以你应该没问题,你现在有什么(好,一段时间)。

P.S. mysql_*函数现在已过时。您应该使用mysqliPDO。这里是关于差异的PHP Manual