Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Randomizacion de resultados paginada

Estas en el tema de Randomizacion de resultados paginada en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/01/2014, 07:42
 
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!
  #2 (permalink)  
Antiguo 16/01/2014, 03:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Randomizacion de resultados paginada

Trabajar con objetos y hacer la consulta una sola vez

Código MySQL:
Ver original 

guardar los datos en un array de sessión o en un objeto y paginar sobre esa estructura de datos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: php, registro, resultados, select, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:04.