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

Bik*_*ohn 13 php mysql

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查询中获取随机项.

  • 那么,php函数array_rand()更快吗? (2认同)