Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 16-ene-2008, 01:46   #1 (permalink)
giro ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 7
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.
giro está desconectado   Responder Citando
Antiguo 16-ene-2008, 03:58   #2 (permalink)
kaS_aPPeaL está en el buen camino
 
Fecha de Ingreso: septiembre-2003
Mensajes: 92
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
kaS_aPPeaL está desconectado   Responder Citando
Antiguo 16-ene-2008, 04:03   #3 (permalink)
giro ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 7
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-ene-2008 a las 04:10.
giro está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 10:35.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96