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

Tabla para contabilizar clics

Estas en el tema de Tabla para contabilizar clics en el foro de Mysql en Foros del Web. Hola amigos, tengo un sitio Web que se trata de una guía de comercios. Resulta que a cada comerciante le proporcionamos información tipo estadística sobre ...
  #1 (permalink)  
Antiguo 11/08/2015, 10:25
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Tabla para contabilizar clics

Hola amigos, tengo un sitio Web que se trata de una guía de comercios.
Resulta que a cada comerciante le proporcionamos información tipo estadística sobre la cantidad de clics que su anuncio recibió en el último mes, la suma de clics de los últimos seis meses y el promedio diario de clics del último mes.
En el momento que diseñé el sitio no se me ocurrió para esto otra idea que crear una tabla llamada estadisticas con los siguientes campos:

id_estadisticas
fecha
id_comercio

En esta tabla se crea un registro por cada clic a cada comercio...
Como se imaginarán pasaron un par de años y el volumen de la tabla es inmanejable. Incluso el sitio se cayó varias veces y cuando reclamo al Hosting me envían un log que dice que el server está saturado y apunta a esta tabla.

Tengo que darle alguna solución y lo único que se me ocurre es borrar los registros que correspondan a fechas más allá de los 6 meses ya que es lo máximo que nos vamos para atrás en la información estadística que les proporcionamos a los comerciantes, pero quería saber cómo tratarían ustedes este tema, si hay alguna forma mejor de guardar y manejar esta información.

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 12/08/2015, 03:46
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Tabla para contabilizar clics

Hola Integer78,

Como solución rápida mientras te replanteas otra solución algo más elaborada, sería crear un cron que haga un recuento por la cantidad mínima de tiempo que ofreces las estadísticas.

Si el mínimo es un mes, pues al cerrar cada mes, cada semana, o cada día, ejecutar el cron y que haga recuento.

Añades un campo más a la base de datos.
id_estadisticas
id_comercio
fecha
contador_clicks

Código:
id_estadisticas	id_comercio	fecha		contador_clicks
1		1		31/08/2015	300
2		10		31/08/2015	100
3		50		31/08/2015	90
4		60		31/08/2015	280
5		97		31/08/2015	400
De 1170 rows pasas a 5...

Cada año tendrás 12 x número de usuarios contabilizados.

La reducción es considerable, no es complicado de implementar y te aporta una solución a corto plazo mientras buscas algo mucho más optimizado.

Como siempre: copias de seguridad a la base de datos antes de hacer nada y testearlo antes de pasarlo a producción.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 12/08/2015, 08:32
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: Tabla para contabilizar clics

Gracias Uncontroled_Duck, lo que planteas es más o menos lo que tenía pensado hacer.
Ahora cuando hablas de una solución más elaborada ¿qué podría ser? estoy bastante trabado con este tema no se me ocurre nada. ¿Cuál sería una forma más profesional de manejar esto?
  #4 (permalink)  
Antiguo 12/08/2015, 10:12
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Tabla para contabilizar clics

En cuanto a hacerlo más elaborado me refería a estudiar arternativas para reducir el número de rows sin perder información.

Cada trimestre, semestre y cada año cerrado guardar los datos serializados, o mediante json...

Es un proceso contínuo de compresión de datos que se pueden recuperar. Pero ahí mejor que yo te podrían orientar los expertos en bases de datos que impacto tendría en el rendimiento o si conocen formas más eficientes de hacerlo.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: tabla
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 01:01.