MySQL选择随机行 - rand()性能

时间:2013-04-29 22:28:51

标签: php mysql

与其他解决方案相比,ORDER BY rand()性能是否非常慢?如果是,有哪些更好的方法从数据库中选择随机行?

我的查询:

SELECT sName FROM bpoint WHERE placeID=? ORDER BY rand() LIMIT 1; 

1 个答案:

答案 0 :(得分:13)

是的,ORDER BY RAND()在较大的结果集中可能会非常慢。

一个选项是使用此语句获取结果集(到数组中):

SELECT sName FROM bpoint WHERE placeID=?; 

之后 - 使用array_rand($resultset)$resultset查询中获取随机项。