10亿级订单系统分库分表设计思路
一、背景
随着公司业务增长,如果每天1000多万笔订单的话,3个月将有约10亿的订单量,之前数据库采用单库单表的形式已经不满足于业务需求,数据库改造迫在眉睫。
二、订单数据如何划分
我们可以将订单数据划分成两大类型:分别是热数据和冷数据。
热数据:3个月内的订单数据,查询实时性较高;
冷数据A:3个月 ~ 12个月前的订单数据,查询频率不高;
冷数据B:1年前的订单数据,几乎不会查询,只有偶尔的查询需求;
可能这里有个疑惑为什么要将冷数据分成两类,因为根据实际场景需求,用户基本不会去查看1年前的数据,如果将这部分数据还存储在db中,那么成本会非常高,而且也不便于维护。另外如果真遇到有个别用户需要查看1年前的订单信息,可以让用户走离线数据查看。
对于这三类数据的存储,目前规划如下:
热数据: 使用mysql进行存储,当然需要分库分表;
冷数据A: 对于这类数据可以存储在ES中,利用搜索引擎的特性基本上也可以做到比较快的查询;
冷数据B: 对于这类不经常查询的数据,可以存放到Hive中;
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 chaofa_vip@126.com
文章标题:10亿级订单系统分库分表设计思路
文章字数:378
本文作者:Hechaofa
发布时间:2020-09-11, 10:09:47
最后更新:2020-09-11, 19:46:18
原始链接:https://chaofavip.github.io/2020/09/11/mysql/fenbiao/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。