【问题标题】:Is there a faster way to get a random record from a MySQL table through ActiveRecord?有没有更快的方法通过 ActiveRecord 从 MySQL 表中获取随机记录?
【发布时间】:2009-05-22 20:30:40
【问题描述】:

在 Rails 应用程序中,我使用它从 MySQL 表中获取随机行:

contact = Contact.find(:all, :limit => 1, :order => 'RAND()')[0]

即使该表只有大约 20,000 行,也需要几秒钟的时间。有人知道更快的方法吗?


更新

还尝试在控制台中运行 SQL...

SELECT * FROM `contacts` ORDER BY RAND() LIMIT 1

这仍然需要很长时间,比如两三秒。

【问题讨论】:

    标签: sql mysql ruby-on-rails ruby


    【解决方案1】:

    从 ruby​​ 中获取一兰特,然后将其转换为您的主键

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 2019-03-28
      • 2020-03-05
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多