订单中心,1亿数据架构,分表设计方案

订单中心,典型业务查询需求有哪些?

第一类,前台访问,最典型的有三类需求:
(1)订单实体查询:通过oid查询订单实体,90%流量属于这类需求;
(2)用户订单列表查询:通过buyer_uid分页查询用户历史订单列表,9%流量属于这类需求;
(3)商家订单列表查询:通过seller_uid分页查询商家历史订单列表,1%流量属于这类需求;

基因法,是解决“1对多”业务,数据库水平切分的常见方案。

什么是分库基因?

通过buyer_uid分库,假设分为16个库,采用buyer_uid%16的方式来进行数据库路由,所谓的模16,其本质是buyer_uid的最后4个bit决定这行数据落在哪个库上,这4个bit,就是分库基因。

什么是基因法分库?

在订单数据oid生成时,oid末端加入分库基因,让同一个buyer_uid下的所有订单都含有相同基因,落在同一个分库上。

...

如上图所示,buyer_uid=666的用户下了一个订单:
(1)使用buyer_uid%16分库,决定这行数据要插入到哪个库中;
(2)分库基因是buyer_uid的最后4个bit,即1010;
(3)在生成订单标识oid时,先使用一种分布式ID生成算法生成前60bit(上图中绿色部分);
(4)将分库基因加入到oid的最后4个bit(上图中粉色部分),拼装成最终64bit的订单oid(上图中蓝色部分);
通过这种方法保证,同一个用户下的所有订单oid,都落在同一个库上,oid的最后4个bit都相同,于是:
(1)通过buyer_uid%16能够定位到库;
(2)通过oid%16也能定位到库;

内容出自
https://mp.weixin.qq.com/s/AVGc7JskhKxG0iPQBX5J1w

你可能感兴趣的:(订单中心,1亿数据架构,分表设计方案)