多用户的网站,用户的投稿量和照片数量之类的如何统计?

比如用户登录到会员中心后,会有一个简单的统计系统,这个投稿量和照片数量是直接建一个表,然后每次发布文章或者上传照片的时候都update table set photo=photo+1 where uid=1
还是每次都select count(*) 一下好呢?

阅读 4.1k
3 个回答

select count(*), 然后缓存

用户中心访问量也不高,效率上讲哪区别不大。
我个人习惯于使用单独的统计表,不想让数据库承担逻辑上的东西,使用+1方式,单独建个表,以后增加其他它信息的统计也方便些,这么做要保证数据一致性,防止用户新增了投稿,但是统计表却更新失败,最好给数据库加个定期事务。
如果用count(*),记得把*换成主键名。

更科学的方式是在缓存层面储存计数, 例如用redis,然后定期永久化。

第一种方案的路过一下。
然后每周会有一次的数据更新。防止冗余数据的异常出现的统计错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题