MarcosBL

Aprendiz de todo, maestro de nada

Guardando cuenteo de accesos a nuestros items

Cada vez que en nuestra aplicación web basada en MySQL queremos llevar un cuenteo de, por ejemplo, las veces que ha sido visto un producto, tenemos dos opciones:

  • Guardar la información en la propia tabla de productos, lo que nos lleva a estropear toda posibilidad de aprovechamiento de la query_cache de MySQL
  • Guardar dicha información en una tabla aparte, y extraerla cuando sea necesario via JOINS, que adolece, aunque en menor medida, del mismo problema que la solución anterior

Hasta ahora mi solución pasa por guardar en un log, sea mysql o en disco (actualmente en disco), cada acceso a una ficha de producto referenciando IP del usuario e ID de producto, y agregando via «append» una linea a dicho log, ya que es el único modo de escritura de archivos que permite múltiples procesos escribiendo al mismo tiempo.

1.2.3.4|1203
1.2.5.7|2046
1.3.2.5|1545

Una vez al dia, un proceso en CRON parsea este fichero de log en segundos, actualiza las tablas necesarias y de nuevo lo vacía a la espera de nuevos visitantes.

¿ Alguien que proponga una idea mejor ?

1 comentarios en “Guardando cuenteo de accesos a nuestros items

Comments are closed.