sql >> Base de Datos >  >> RDS >> Mysql

MySQL:¿Mezclar un resultado de consulta limitado?

Puedes usar rand() , pero el rendimiento es terrible

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

Sugeriría almacenar la lista de todos los ID de usuario en una matriz de serialización y almacenar en caché en un archivo de disco. (actualización periódica)

Por lo tanto, puede volver a serializarlo usando PHP y usar PHP array_rand para elegir 5 usuarios al azar.

Para obtener la información completa, puede hacer

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