Быстрый выбор случайной строки из большой таблицы MySQL
Для эффективного извлечения случайной записи из большой таблицы в MySQL стоит избегать команды ORDER BY RAND(). Вместо этого используйте уникальный идентификатор id. Сначала определите максимальное значение id, генерируйте случайное число в пределах этого диапазона и затем получите строку с соответствующим id:
Применение этого подхода будет позволять быстро получать случайное значение без лишней нагрузки на сервер. Экономьте свое время!
Для эффективного извлечения случайной записи из большой таблицы в MySQL стоит избегать команды ORDER BY RAND(). Вместо этого используйте уникальный идентификатор id. Сначала определите максимальное значение id, генерируйте случайное число в пределах этого диапазона и затем получите строку с соответствующим id:
SQL:
-- Отказываемся от полного сканирования таблицы, затратного по времени!
SELECT * FROM your_table
WHERE id >=
(SELECT FLOOR(1 + RAND() *
(SELECT MAX(id) FROM your_table)))
LIMIT 1;
-- Вместо 'your_table' укажите корректное имя вашей таблицы (если она не носит название 'your_table').