给博客添加浏览统计功能

[文章作者:磨延城 转载请注明原文出处: 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。

评论:

  1. 暂无评论...
  2. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码