给博客添加浏览统计功能
[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/121/ ]
回想2013年,那时磨途歌还没有正式上线,我就基于memcached缓存+mysql数据库写了一个简单的访问统计模块,记录每天的PV、UV、IP、各个页面的访问量,并且记录用户是从哪个页面跳转到哪个页面.统计功能是做好了,就在我要基于谷歌的API开发统计图表绘制功能的时候,发现百度统计在这方面已经做得很完善了,就把自己写的浏览统计功能屏蔽掉,换上了百度统计.
最近有朋友问我,为什么不给博客添加浏览统计功能?然后跟我科普添加浏览统计的好处。
回想2013年,那时磨途歌还没有正式上线,我就基于memcached缓存+mysql数据库写了一个简单的访问统计模块,记录每天的PV、UV、IP、各个页面的访问量,并且记录用户是从哪个页面跳转到哪个页面。统计功能是做好了,就在我要基于谷歌的API开发统计图表绘制功能的时候,发现百度统计在这方面已经做得很完善了,就把自己写的浏览统计功能屏蔽掉,换上了百度统计。
或许真的被朋友说到点子上了,长期以来,我就没有统计过自己写的文章有多少人看过,有多少人喜欢,基本上都是在自娱自乐。最终,我还是添加了一个更简单的浏览统计功能,来统计博客的浏览量。
实现方法很简单,就是给MariaDB数据库中的文章表添加整形字段如visit,然后每次访问页面,该字段就递增1,字段递增的sql语句如下:
update article set visit=visit+1 where id=121
如果需要在页面显示递增后的数值,普遍的做法就是再执行一次查询:
select visit from article where id=121
在这里跟大家分享一个更高效的方法:
update article set visit=visit+1 where id=121 and @visit:=visit+1; select @visit visit;
上边的sql语句把最新的访问量赋值给了变量@visit,虽然也执行了select查询,但是省去回表查询,所以效率要高很多。
注:也可写成select @visit;,区别如下:
select @visit:获取数据的时候使用的key为@visit。
select @visit visit:获取数据的时候使用的key为visit。
我来说两句: