Foros del Web » Programando para Internet » PHP »

Eficiencia en sistema de paginación

Estas en el tema de Eficiencia en sistema de paginación en el foro de PHP en Foros del Web. Hola: Para mostrar los tipicos botones de adelante,atras,ir al principio e ir al final,¿siempre es necesarios calcular todos los mensajes del usuario y luego dividirlos ...
  #1 (permalink)  
Antiguo 02/11/2009, 07:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Eficiencia en sistema de paginación

Hola:

Para mostrar los tipicos botones de adelante,atras,ir al principio e ir al final,¿siempre es necesarios calcular todos los mensajes del usuario y luego dividirlos entre el número de mensajes por página?

Lo digo desde el punto de vista de la eficiencia porque supongo que para contar los mensajes de usuario podemos utilizar count(*) pero si tenemos una tabla con miles de mensajes(de muchos usuarios) puede tardar mucho ¿no?

Gracias
  #2 (permalink)  
Antiguo 02/11/2009, 07:19
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Eficiencia en sistema de paginación

Eso depende, si vos usas AJAX podes ahorrarte un par de cuentas.
Yo habia hecho una paginacion asi, en la que en la noticia cargaba una sola vez la cantidad de comentarios, y luego segun el boton q se presione vas actualizando los comentarios que tengan q salir.

Igual un COUNT(*) es mas eficiente que un COUNT(id) (por dar un ejemplo), no se si sea algo super relevante.

Saludos.
  #3 (permalink)  
Antiguo 02/11/2009, 07:19
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eficiencia en sistema de paginación

lo que yo ago es pasar un valor por get y uso ese para calcular el limit de la consulta.. y una condicion de que si el numero de resultados es menor al numero max de resultados por pagina.. esta seria la ultima hoja y desabilito el siguiente XD!...

asi no saturas nada..
saludos!
  #4 (permalink)  
Antiguo 02/11/2009, 07:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: Eficiencia en sistema de paginación

depende, pero que necesitas?
  #5 (permalink)  
Antiguo 02/11/2009, 07:21
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eficiencia en sistema de paginación

Cita:
Igual un COUNT(*) es mas eficiente que un COUNT(id) (por dar un ejemplo), no se si sea algo super relevante.
estas seguro de eso?...
por lo que yo tengo entendido usar * en las consultas para programas grandes siempre es un deficit de recursos...

saludos!
  #6 (permalink)  
Antiguo 02/11/2009, 07:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Eficiencia en sistema de paginación

Pero yo a eso le veo un problema,si el número max de resultados por página es 10 y el número de resultados es 10 mostrarías el boton de siguiente y en realidad no hay más resultados que mostrar...
  #7 (permalink)  
Antiguo 02/11/2009, 07:23
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eficiencia en sistema de paginación

es cosa de saber hacer la condicion nomas...

para eso esta <=

saludos!
  #8 (permalink)  
Antiguo 02/11/2009, 07:37
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Eficiencia en sistema de paginación

jaja vale vale, es que cómo dijiste menor...

pero entonces cada vez que muestras los botones de paginación calculas todos los mensajes que tiene ese usuario?
  #9 (permalink)  
Antiguo 02/11/2009, 07:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eficiencia en sistema de paginación

osea si lo haces como digo no es necesario.. ya que es solo la consulta para mostrar los datos con un limit.. ahora no subestimes el poder de mysql que aunque sean miles de comentarios nunca tardara mucho..

la forma que yo mencione solo sirve para mostrar un boton atras y siguiente.. no para poner la cantidad total de paginas ni nada...
de igual manera
espero que sirva

saludos!
  #10 (permalink)  
Antiguo 02/11/2009, 07:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Eficiencia en sistema de paginación

joder me siento idiota pero sigo sin entender una cosa de tu método:

si tu haces select * from mensajes where idusuario = "1" limit $inicio,10;

como sabes si va a haber más mensajes despues de esta página?
  #11 (permalink)  
Antiguo 02/11/2009, 07:51
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Eficiencia en sistema de paginación

Puedes leer ESTE articulo, o bien puedes usar una clase existente como http://phppaging.phperu.net/

Salu2
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #12 (permalink)  
Antiguo 02/11/2009, 07:53
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eficiencia en sistema de paginación

limite + 1 y break en el while al llegar a limite
  #13 (permalink)  
Antiguo 02/11/2009, 07:53
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Eficiencia en sistema de paginación

gracias pero si ya se cómo se hace una paginación, este post iba más enfocado a la eficiencia(no calcular el número total de registros cada vez)


vale hidek1 era lo que había pensado

Muchas gracias
  #14 (permalink)  
Antiguo 02/11/2009, 07:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Eficiencia en sistema de paginación

de nada.. no sera el mejor metodo quiza pero es el que pienzo yo usa menos recursos :B
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 02:21.