0
Rails應用程序中,我使用這個從MySQL表得到一個隨機行:是否有更快的方式通過ActiveRecord從MySQL表中獲取隨機記錄?
contact = Contact.find(:all, :limit => 1, :order => 'RAND()')[0]
即使表只擁有約20,000排它需要幾秒鐘。有誰知道更快的方法?
更新
也嘗試只是運行在控制檯中的SQL ...
SELECT * FROM `contacts` ORDER BY RAND() LIMIT 1
它仍然需要很長的時間,比如兩三秒鐘。
請務必閱讀評論該文章。根據你想要做什麼以及如何在你的實例的id空間中分佈,可能會出現錯誤或非最佳行爲。 – 2009-05-22 21:10:23