可能重复:
quick selection of a random row from a large table in mysql
Selecting random rows with MySQL
我目前正在制作一个模块,从mysql数据库中提取随机业务记录,并将记录显示为模块内的“特色业务”。一切正常,但如果这是最好的方式,我不是100%,因为我听说它不是太快了?目前它非常迅速,我认为我将获得的最大业务量大约是100-200,所以可以使用下面的方法,或者这些记录的数量会慢得多吗? / p>
非常感谢: - )
<?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 :(得分:2)
请参阅此问题:MySQL select 10 random rows from 600K rows fast
有“更好”的方式来做你想做的事。
在100-200家企业中,这可能不会产生太大影响。即使在几千。你当前的查询被认为是“慢”的原因是MySQL正在内存中创建一个临时表来处理查询。
所以你现在应该对你所拥有的一切都很好(好吧,暂时)。
P.S。 mysql_*
函数现已过时。您应该使用mysqli或PDO。以下是差异的PHP Manual。
答案 1 :(得分:0)
你会对这么多唱片完全没问题。即使你成千上万,你也会没事的。 Sql查询几乎总是以他们的速度给我留下深刻印象,对于记录如此少的查询,你会没事的。