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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏