与其他解决方案相比,ORDER BY rand()
性能是否非常慢?如果是,有哪些更好的方法从数据库中选择随机行?
我的查询:
SELECT sName FROM bpoint WHERE placeID=? ORDER BY rand() LIMIT 1;
答案 0 :(得分:13)
是的,ORDER BY RAND()
在较大的结果集中可能会非常慢。
一个选项是使用此语句获取结果集(到数组中):
SELECT sName FROM bpoint WHERE placeID=?;
之后 - 使用array_rand($resultset)
从$resultset
查询中获取随机项。