mysql 大数据 按时间 统计总数 必须用count吗?

1、想统计今日新增客户数,昨日新增客户数,以及今日跟进记录数等等,数据量很大,前面用的是加1减1的方式,但经常会出现误差,怎么解决这个统计的问题?难道必须用count吗?

阅读 4.1k
2 个回答

大数据量的统计最好不要直接在主库上搞 -- 加1减1的方式不锁表不准确,锁表影响性能,而count性能也会很差。

建议把统计功能独立成一个子系统,业务服务器通过消息队列把新增客户/删除客户的操作通知到这个统计子系统里面。

在这个子系统里面可以考虑使用时间序列数据库(比如开源的Elasticsearch)来存储,非常方便统计。即使不用专门的时间序列数据库,而直接用mysql的话,可以单独搞个mysql数据库,这样锁表来加1减1,或者count都可以,反正不是主库。

  • 如果是自增的id可以用今天最后一个减去昨天最后一个来计算。

  • 使用的统计表加1减1

  • 使用count

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