mysql 业务统计信息 是业务触发更新 还是聚合统计
场景描述
假如,有一条【商品分类】记录,其中有一个该分类下的【商品数量】字段。
提问
上述场景中的【商品数量】字段何时更新?
我的技术方案
1). 每次添加、删除商品时更新
优点:查询性能好
缺点:增删改业务逻辑复杂
2). 查询时使用聚合统计
优点:增删改业务逻辑不需要考虑
缺点:查询性能降低
3). 脚本定时统计更新
优点:查询性能好、增删改业务逻辑简单
缺点:实时性差、耗费额外的服务器资源
我的倾向
我一般倾向于上述第一种方案。理由是,一旦出现查询并发,mysql性能会很差。实时性在统计中还是比较重要的。
如果这个统计用到的频率地方较少,就实时查呗。 否则就用实时计数较好,如果觉得业务里加统计代码不好,可以使用 事件 触发,把代码分离
我一般根据业务需求和数据量大小来选择
高:聚合统计
低: 直接查询/字段更新
高: 字段更新/ 直接查询
低: 聚合统计
大: 字段更新/ 聚合统计
小: 直接查询
字段更新和聚合统计可以看作同一种,但是字段更新适合简单业务不适合复杂业务