亿级订单数据分库分表的一些想法

针对公司年订单量达亿级的数据存储挑战,本文提出了一种通过多库多表来分散存储压力的解决方案。该方案利用哈希算法将用户ID映射到具体的表名上,从而实现高效查询单用户的全部订单数据。此外还探讨了如何通过订单号快速定位到表名的方法,以及统计各业务线订单数据的具体策略。
 

亿级订单数据分库分表的一些想法

标签: 亿级订单数据分库分表
  317人阅读  评论(0)  收藏  举报
  分类:

前提:

    公司年1亿~10亿订单,需要满足未来3~5年数据存储。所有物理或性能上的提高都无法满足业务需求。

思路:

    使用多个库创建多张表,如1024张表(单库或少量库会存在TPS瓶颈),这样每张表只要保存约100万数据。

解决方案:

    1、快速查询用户所有订单数据(单用户的所有订单数据在一张表中)

        根据用户id进行hash得到hash_code,然后根据hash_code%1024定位表名。

    2、(不知道用户id的情况下)根据订单id查询订单数据

        有人提供方法:建立用户id与订单号的映射关系表,通过该表找到用户id,然后找到表名。如果订单有100亿条,这个映射张也需要存储100亿条数据,同样存在问题。

订单号中嵌入用户id的hash_code,这样只要提取订单号中的hash_code就可以根据该hash_code找到表名。

    3、统计各业务线中的订单数据

        创建业务订单表,同步订单数据到业务订单表中(有时候不是所有业务线都需要统计)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值