2013-09-25 2 views

ответ

1

Короткий ответ: нет.

Что вы просили, чтобы db: выполните порядок всей таблицы вещей в случайном порядке ... затем захватите меня пять из них. Если в вашей таблице есть много строк ... это очень дорогостоящая операция.

Лучшая опция (если идентификаторы являются автоматическим приращением и, следовательно, вероятно параллельными), это сгенерировать набор случайных идентификаторов в пределах диапазона id для вашей таблицы предметов и получить эти отдельные вещи этими идентификаторами.

0

Это самый лучший способ:

Thing.all.sample(5) 
+0

Вы можете уточнить, почему это «наименее дорогой способ сделать это»? – Leigh

+0

Да, не уверен. Образец работает только с полным набором (он произвольно упорядочивает массив и вытаскивает первый N, который вы запрашиваете). Это зависит от вас, вытаскивая весь набор вещей ... –

 Смежные вопросы

  • Нет связанных вопросов^_^