Рекомендация проверять журнал разработки очень полезна.
Однако в этом случае рандомизация происходит на стороне MySQL, а не внутри Active Record. Чтобы увидеть, как выполняется запрос внутри MySQL, вы можете скопировать запрос из журнала и вставить его в выбранный инструмент MySQL (консоль, графический интерфейс и т. Д.) И добавить «EXPLAIN» в начало.
Вы должны получить что-то вроде:
EXPLAIN SELECT * FROM posts WHERE votes >= 'x' ORDER BY rand() LIMIT n
Когда я пытаюсь выполнить аналогичный запрос в MySQL, мне говорят:
Select Type: SIMPLE
Using where; Using temporary; Using filesort
Тогда вам следует найти несколько полезных советов по SO, как оптимизировать запросы MySQL. Если есть проблема, добавление индекса в столбце голосов может улучшить производительность. ситуация.