Как лучше всего написать запрос, который выбирает 10 строк случайным образом из общего числа 600 КБ?
Вот как я это делаю:
select * from table_with_600k_rows where rand() < 10/600000 limit 10
Мне это нравится, потому что не требует других таблиц, его легко написать и очень быстро выполнить.
Полагаю, это лучший из возможных способов ..
SELECT id, id * RAND( ) AS random_no, first_name, last_name FROM user ORDER BY random_no
Я использую этот запрос:
select floor(RAND() * (SELECT MAX(key) FROM table)) from table limit 10
время запроса: 0,016 с
Используйте приведенный ниже простой запрос для получения случайных данных из таблицы.
SELECT user_firstname , COUNT(DISTINCT usr_fk_id) cnt FROM userdetails GROUP BY usr_fk_id ORDER BY cnt ASC LIMIT 10