Crear contadores eficientes en MySQL

Publicidad

A la hora de implementar un sistema para contabilizar las páginas vistas o un simple contador (hit counter) que permita registrar las visitas de los usuarios, existen distintas formas de solucionarlo. Si nuestra base de datos está en MySQL entonces lo natural para muchos podría ser agregar un simple campo hit o views en la tabla y así ir registrando o incrementando el contador cada vez que alguien visita una página o ve un registro.

Pero esta solución puede no ser la óptima, claramente, si es que nuestros registros tienen muchas visitas y necesitamos hacer muchos INSERT a la base de datos. En cambio, proponemos estudiar algunas variantes y dar algunas ideas alternativas que pueden ayudar a muchos.

Utilizar Google Analytics o Piwik

Si tenemos que montar un sistema de estadísticas para nuestro sitio, ya existen paquetes que nos permiten mediante una API acceder a estos datos. Google Analytics es uno de los más utilizados, pero claro, dependeríamos completamente de la API de GA y de lo que Google quiera hacer con nosotros.

Una alternativa a Google Analytics es Piwik. Es Open Source y nos permite además consultar mediante una API las estadísticas. Incluye distintos módulos y si lo instalamos en el mismo servidor la comunicación entre nuestra aplicación y Piwik puede ser muy veloz.

Otras soluciones

En Implementing Efficient Counters in MySQL podemos ver las implicaciones de performance con una tabla específica para este propósito vs. un campo en la tabla de registro que queremos contabilizar. También recomendamos ver la respuesta en Stack Overflow a la pregunta create separate table for statistical counter.

Utilizando INSERT DELAYED (de MySQL) podemos demorar la tarea de insertar la actualización del contador en la base de datos y mejorar un poco la performance.

Related Posts Plugin for WordPress, Blogger...

Crear contadores eficientes en MySQL se encuentra en Programación usa los siguientes tags:

 

Sin comentarios. ¿Quieres ser el primero en comentar?

Dejar un comentario