Как быстро выбирать случайные записи из БД и какая БД для этого лучше подойдет?

Есть задача, которая очень напоминает казино или игру, т.е. некие записи в БД и нужно выбирать из них случайную. Из нюансов каждая запись имеет вес, т.е. некий процент успеха выбора.
Пока думаю этот процент успеха реализовывать отдельными доп. записями.
Может уже кто реализовывал и подбирал для такой задачи БД?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Ордер бай ранд всегда является нагрузкой на любую РБД, самый эффективный метод - перенести часть логики из бд в приложение.
Делается селект макс ид, затем в диапазоне 1-макс. программный рандом индексов, с оверхедом раза в 3-4, и делается запрос ин уже с готовыми рандомными айдишниками и ордеор бай ранд, лимит сколько надо.

Из нюансов каждая запись имеет вес, т.е. некий процент успеха выбора.

В вашем случае берется оверхед побольше, и ордер бай вес, таким образом более тяжелые веса у вас вероятнее попадут в выборку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы