多用户的网站,用户的投稿量和照片数量之类的如何统计?
程序员文章站
2024-01-15 21:05:04
...
比如用户登录到会员中心后,会有一个简单的统计系统,这个投稿量和照片数量是直接建一个表,然后每次发布文章或者上传照片的时候都update table set photo=photo+1 where uid=1
还是每次都select count(*) 一下好呢?
还是每次都select count(*) 一下好呢?
回复内容:
比如用户登录到会员中心后,会有一个简单的统计系统,这个投稿量和照片数量是直接建一个表,然后每次发布文章或者上传照片的时候都update table set photo=photo+1 where uid=1
还是每次都select count(*) 一下好呢?
select count(*)
, 然后缓存
用户中心访问量也不高,效率上讲哪区别不大。
我个人习惯于使用单独的统计表,不想让数据库承担逻辑上的东西,使用+1
方式,单独建个表,以后增加其他它信息的统计也方便些,这么做要保证数据一致性,防止用户新增了投稿,但是统计表却更新失败,最好给数据库加个定期事务。
如果用count(*)
,记得把*
换成主键名。
更科学的方式是在缓存层面储存计数, 例如用redis,然后定期永久化。
第一种方案的路过一下。
然后每周会有一次的数据更新。防止冗余数据的异常出现的统计错误。