Как лучше всего выбрать случайную строку из таблицы в MySQL?

Possible Duplicate:
quick selection of a random row from a large table in mysql

Я видел случайные строки, извлекаемые с помощью подобных запросов, которые довольно неэффективны для больших наборов данных.

SELECT id FROM table ORDER BY RANDOM() LIMIT 1

Я также видел различные другие решения для СУБД, которые не работают с MySQL.

Лучшее, что я могу придумать для себя, - это использовать два запроса и делать что-то вроде этого.

  1. Получите количество строк в таблице. Таблицы MyISAM хранят количество строк, так что это очень быстро.
  2. Вычислите случайное число от 0 до rowcount - 1.
  3. Выберите строку, упорядоченную по первичному ключу, с LIMIT randnum, 1

Вот SQL:

SELECT COUNT(*) FROM table;
SELECT id FROM table LIMIT randnum, 1;

Есть ли у кого-нибудь идеи получше?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
9
0
1 915
0

Другие вопросы по теме