ORDER BY rand()与其他解决方案相比,性能是否真的很慢?如果是,有什么更好的方法从数据库中选择随机行?
我的查询:
SELECT sName FROM bpoint WHERE placeID=? ORDER BY rand() LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
bes*_*rld 13
是的,ORDER BY RAND()在较大的结果集中可能会非常慢.
一个选项是使用此语句获取结果集(到数组中):
SELECT sName FROM bpoint WHERE placeID=?;
Run Code Online (Sandbox Code Playgroud)
之后 - 用于array_rand($resultset)从$resultset查询中获取随机项.