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

Paginado en mysql?

Estas en el tema de Paginado en mysql? en el foro de Mysql en Foros del Web. Estoy haciendo un buscador, y los resultados se muestran por páginas. Que seria mas optimo? Para poder hacer el paginado primero hay que hacer una ...
  #1 (permalink)  
Antiguo 16/01/2008, 01:46
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 16 años, 3 meses
Puntos: 0
Paginado en mysql?

Estoy haciendo un buscador, y los resultados se muestran por páginas.

Que seria mas optimo?

Para poder hacer el paginado primero hay que hacer una consulta que me devuelva el número de registros para así poder calcular el número de páginas.

Después que seria más optimo. Hacer otra select con limit, para solo recuperar los registros que comprende la pagina actual. O aprovechar la select que se ha hecho para contar los registros, y ir recorriéndola hasta llegar a los registros de la página actual.

Espero haberme explicado. No se si para hacer el tema de paginas de una búsqueda que devuelve muchos resultados hay alguna otra opción.


Gracias.
Giro.
  #2 (permalink)  
Antiguo 16/01/2008, 03:58
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 3
Re: Paginado en mysql?

Creo que lo más óptimo es que realices dos consultas.

Una primera para saber cuántos elementos has encontrado, pero contando los registros de la clave primaria tan sólo (por lo que la tabla devuelta será mucho más pequeña).

Por ejemplo: "encontrar los clientes que se llamen 'giro'"

$sql = "select count(id) as num_clientes from clientes where nombre = 'gir'"

$res = mysql_query($sql);
$dato = mysql_fetch_row($res);
$dato['num_clientes'] <----- tendrá el número de clientes encontrados

Después de esto ya podemos paginar

$sql = "select count(id) as num_clientes from clientes where nombre = 'gir' limit 0, 250;"

Espero haberte ayudado
  #3 (permalink)  
Antiguo 16/01/2008, 04:03
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Paginado en mysql?

Bien, era solo saber que podria ser mas óptimo.

La base tiene 3 millones de registros donde hacer una busqueda compleja.

Sino hare unas pruebas de carga con los dos métodos.


Gracias por la respuesta.
Giro.

Última edición por giro; 16/01/2008 a las 04:10
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 07:18.