Подтвердить что ты не робот

MySQL выбирает случайную строку - производительность rand()

Правда ли, что производительность ORDER BY rand() очень медленная по сравнению с другими решениями? Если да, то каковы лучшие способы выбора случайных строк из базы данных?

Мой запрос:

SELECT sName FROM bpoint WHERE placeID=? ORDER BY rand() LIMIT 1; 
4b9b3361

Ответ 1

Да, ORDER BY RAND() может быть очень медленным в больших результирующих наборах.

Опция заключается в выборке результатов с помощью этого оператора (в массив):

SELECT sName FROM bpoint WHERE placeID=?; 

После этого - используйте array_rand($resultset), чтобы получить рандомизированный элемент из запроса $resultset.