Есть ли более быстрый способ получить случайную запись из таблицы MySQL через ActiveRecord? - PullRequest
0 голосов
/ 23 мая 2009

В приложении Rails я использую это для получения случайной строки из таблицы MySQL:

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

Несмотря на то, что в таблице всего около 20000 строк, это займет пару секунд. Кто-нибудь знает более быстрый способ?


Обновление

Также попробовал просто запустить SQL в консоли ...

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

Это все еще занимает много времени, например, две или три секунды.

Ответы [ 2 ]

2 голосов
/ 23 мая 2009

Не думаю, что мой первый ответ поможет вам. Возможно, эта статья будет

0 голосов
/ 23 мая 2009

Получить один ранд от ruby ​​и затем преобразовать его в свой первичный ключ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...