Quiero comenzar a contar las veces que se ve una página web y, por lo tanto, necesito algún tipo de contador simple. ¿Cuál es el mejor método escalable para hacer esto?Cuál es la mejor manera de implementar un campo de contador en MySQL
Supongamos que tengo una tabla Frobs donde cada fila corresponde a una página - algunas opciones obvias son:
tienen un campo NumViews unsigned int en la tabla Frobs que obtiene informado sobre cada vista mediante
UPDATE Frobs SET NumViews = NumViews + 1
. Simple pero no tan bueno a escala como lo entiendo.Tenga una tabla separada FrobViews donde se inserta una nueva fila para cada vista. Para mostrar el número de vistas , debe hacer un simple
SELECT COUNT(*) AS NumViews FROM FrobViews WHERE FrobId = '%d' GROUP BY FrobId
. Esto no implica ninguna actualización, por lo que puede evitar el bloqueo de tablas en tablas MyISAM; sin embargo, el rendimiento de lectura se verá afectado si desea mostrar el número de vistas en cada página.
¿Cómo lo haces?
Hay algunos buenos consejos aquí: http://www.mysqlperformanceblog.com/2007/07/01/implementing-efficient-counters-with-mysql/ pero me gustaría escuchar las opiniones de la comunidad SO.
Estoy usando InnoDb por el momento, pero estoy interesado en las respuestas para InnoDb y MyISAM.