Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2014, 07:42
ferminako
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años
Puntos: 1
Randomizacion de resultados paginada

Buenas a to2,

Antes de nada decir que ya he mirado en google todas las alternativas al rand() de mySql para generar una consulta con datos aletorios sin afectar tanto a la performance del servidor.

Por desgracia en ninguno encuentro solución para mi problema debido a que ademas de necesitar los resultados randomizados necesito paginarlos, y todas estas soluciones se basan en generar randoms en la consulta con lo que la paginación que busco no seria consistente, podria devolver datos repetidos y por lo tanto no es una solución válida.

Hasta ahora lo que hacia para poder obtener un listado randomizado y paginado era pasar un valor fijo desde php entre 0 y 1 de coma flotante tal que '0.87' y el limit y utilizarlo en una consulta tal que :

Código MySQL:
Ver original
  1. select * from tabla 1
  2. limit 1,30

De esta manera obtenía registros randomizados y paginados, debido a que el rand tenia siempre le mismo numero. Este valor para rand se generaba para cada sesion de usuario por lo que cada usuario obtenia resultados randomizados y paginados de manera correcta.

Actualmente la tabla sobre la que realizo esta consulta tiene en torno a 30.000 registros y nose si temer o no por la performance de la consulta , debido a que se consume desde muliples usuarios y se podrían llegar a realizar numerosas consultas.

Se os ocurre alguna solución para obtener resultados aleatorios y paginados?

Gracias!