存档

文章标签 ‘统计数值’

MySQL的统计数值问题

2017年6月22日 没有评论

典型的明细与统计数值表问题:
以用户好友关系系统举例:用户的好友有个明细列表,还有一个用户好友个统计数值,便于直接返回好友数,不用每次都count。

问题:
如果增减好友时,用++或–来操作统计值表,容易出现不一致的情况,而且会一直错下去。

解决方案:
更新统计数值的时候,不是+1或-1,而且count后更新。

看似解决了问题,实际上带来了新的问题:
当用户数不多的时候,比如几百或几千,效率很高。但当好友数达到百万时,每次count会耗时两三秒,数据库的负载就会出现严重问题。

最终的解决方案:
当好友数在万以下时,采用count更新;过万以后,用+1或-1来操作。
因为当好友超过一万以后,已经没法人工去数了。有误差也不会影响体验了。

分类: 工作 标签: ,