mysql 业务统计信息 是业务触发更新 还是聚合统计

场景描述

假如,有一条【商品分类】记录,其中有一个该分类下的【商品数量】字段。

提问

上述场景中的【商品数量】字段何时更新?

我的技术方案

1). 每次添加、删除商品时更新

优点:查询性能好
缺点:增删改业务逻辑复杂

2). 查询时使用聚合统计

优点:增删改业务逻辑不需要考虑
缺点:查询性能降低

3). 脚本定时统计更新

优点:查询性能好、增删改业务逻辑简单
缺点:实时性差、耗费额外的服务器资源

我的倾向

我一般倾向于上述第一种方案。理由是,一旦出现查询并发,mysql性能会很差。实时性在统计中还是比较重要的。

想问问大佬们平时使用哪种方案?或者有更好的解决方案?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

如果这个统计用到的频率地方较少,就实时查呗。 否则就用实时计数较好,如果觉得业务里加统计代码不好,可以使用 事件 触发,把代码分离

2年前 评论
btx2015 (楼主) 2年前
chuoke (作者) 2年前
blankqwq

我一般根据业务需求和数据量大小来选择

  • 业务复杂度 高:聚合统计 低: 直接查询/字段更新
  • 实时性要求: 高: 字段更新/ 直接查询 低: 聚合统计
  • 数据量. 大: 字段更新/ 聚合统计 小: 直接查询

字段更新和聚合统计可以看作同一种,但是字段更新适合简单业务不适合复杂业务

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!