【发布时间】:2011-07-02 00:15:52
【问题描述】:
我需要从一个表中检索一些随机记录。该表包含大约 100000 条记录。
记录不能连续,性能很重要。
我尝试了“order by rand()”,但性能很差(~3 秒)
【问题讨论】:
-
主键的内容是什么样的?该表还有哪些其他独特的属性或属性组合?
-
我不认为你可以走得更快,除非有一些其他过滤标准......引擎仍然必须通过 100,000 条记录并为集合(内部)分配临时“RAND()”正在应用订单。
-
@catcall,我认为他的意思是数据库中的记录不一定是连续的
(1,2,4,5,6,9)而不是(1,2,3,4,5) -
您是否尝试过从其他来源获取熵,例如将 PRNG 转储到文件中?这样你可以很快得到 50 个无符号整数,所以唯一的工作就是在查询中。