从mysql数据库中选择一个随机记录,最好的方法是什么?

时间:2012-11-09 22:38:09

标签: php mysql select random

  

可能重复:
  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'];
?>

2 个答案:

答案 0 :(得分:2)

请参阅此问题:MySQL select 10 random rows from 600K rows fast

有“更好”的方式来做你想做的事。

在100-200家企业中,这可能不会产生太大影响。即使在几千。你当前的查询被认为是“慢”的原因是MySQL正在内存中创建一个临时表来处理查询。

所以你现在应该对你所拥有的一切都很好(好吧,暂时)。

P.S。 mysql_*函数现已过时。您应该使用mysqliPDO。以下是差异的PHP Manual

答案 1 :(得分:0)

你会对这么多唱片完全没问题。即使你成千上万,你也会没事的。 Sql查询几乎总是以他们的速度给我留下深刻印象,对于记录如此少的查询,你会没事的。