Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/03/2007, 14:27
javi_bus
 
Fecha de Ingreso: enero-2004
Mensajes: 63
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Problema Consulta Complicada

Es interesante eso de las rutas más comunes para saber cuales son los hábitos de los usuarios.

Pues yo tiraría por la vía de los procesos cron. En mi caso lo haré seguramente ejecutando un script php cada 24 horas (en horas de muy poco tráfico). El problema es que cada día puedes ver los datos hasta el día anterior. En nuestro caso no es problema. Si te vale eso, es lo mejor de cara al rendimiento.

También puedes hacer que se ejecute cada hora con los mismos procesos cron.

Y luego yo lo que voy a hacer es separar una tabla temporal. Me explico: en mi caso el software almacena los datos completos de cada visita en un log que no es más que una tabla temporal. Cuando se ejecuta un proceso cron, este hace los cálculos usando los datos de esa tabla temporal (usando un tope de registros por tiempo para no utilizar los que se añadan con visitas mientras se realiza el proceso). Una vez hechos los cálculos, el proceso cron borra los datos sobrantes de un log mayor que tengo (tiene que almacenar estadísticas detalladas de los últimos X días por si necesitas ver algo), es decir, borra la información caducada de ese log. Después mete los registros del log temporal a esa tabla (usando de nuevo el tope de tiempo para no tocar los nuevos que hayan podido aparecer) y por último se borran los registros de esa tabla temporal con el tope de tiempo (registros ya usados). De este modo, al tener una tabla temporal, los cálculos se hacen sobre una tabla lo más pequeña posible (solo los datos a tratar) y además, si lo ejecutas cada hora, lo bueno es que tendrás menos datos acumulados sobre los que hacer cálculos que si lo ejecutas cada día. Lo malo: que si lo haces cada 24 horas,con hacerlo en horas de poco tráfico no hay problema. Si lo haces cada hora, depende de cuantos registros existan en la tabla temporal, podrá ser "sostenible" en horas puntas o no.

Lo de los procesos cron depende de tu servidor. Tu preocúpate de crear un script php que haga esos cálculos, borre después la tabla temporal (importante esta tabla para hacer cálculos sobre pocos registros, no sobre los acumulados en meses o años) y haz que ese script no tenga caducidad o que este valor sea muy grande. Luego alguien que sepa un poco de servidores, que te programe el servidor para que abra cada x tiempo la url donde se encuentre ese archivo php (ponle un nombre raro con números y letras al azar para que no lo ejecute una persona que "acierte" la url).

A ver si esto te ayuda un poco. En mi caso sirve perfectamente. No he empezado a programarlo y, de hecho, no lo haré hasta al menos dentro de un mes ya que tengo otras cosas que terminar antes. Pero ya lo tengo planeado al milímetro. Eso sí, igual termino añadiéndole algo similar sobre las rutas, como la idea que se te ocurrió, que me parece muy buena.

Si puedo ayudarte en algo más dímelo.

Un saludo