我想开始计算浏览网页的次数,因此需要某种简单的计数器。什么是最好的可扩展的方法呢?什么是在MySQL中实现计数器字段的最佳方式
假设我有,每一行对应一个页表Frobs - 一些明显的选项是:
在Frobs表,得到 使用
UPDATE Frobs SET NumViews = NumViews + 1
每个视图时更新有一个unsigned int NumViews场 。简单但不是很好,因为我了解它。有一个单独的表FrobViews 其中为每个视图插入一个新行。要显示 的视图数量,则需要执行一个简单的
SELECT COUNT(*) AS NumViews FROM FrobViews WHERE FrobId = '%d' GROUP BY FrobId
。这不涉及任何更新,因此可以避免MyISAM表中的表锁定 - 但是,如果要显示每个页面上的视图数,读取性能将受到影响。
你是如何做到的?
这里有一些很好的建议: http://www.mysqlperformanceblog.com/2007/07/01/implementing-efficient-counters-with-mysql/ 但我希望听到SO社区的意见。
我目前使用InnoDb,但对InnoDb和MyISAM的答案感兴趣。