Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Разбъркване на ограничен резултат от заявка?

Можете да използвате rand() , но представянето е ужасно

select * from users order by rand() limit 5; <-- slow

Бих предложил да съхранявате списък с всички потребителски идентификатори в сериализиран масив и да кеширате в дисков файл. (периодично актуализиране)

Така че можете да го де-сериализирате обратно с помощта на PHP и да използвате PHP array_rand за да изберете 5 произволни потребители.

За да извлечете пълната информация, можете да направите

select * from users where user_id in(...); <-- very fast


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавяте точки към LINESTRING SQL

  2. Най-бързият начин за конвертиране/обработка на Datatable в персонализиран PSObject

  3. Намерете припокриващи се (дата/час) редове в една таблица

  4. Използването на LIMIT 1 ускорява ли заявка към първичен ключ?

  5. Задайте часова зона в PHP и MySQL