mysql分库存储_分库解决方案—数据存储

一、目录

需求

问题

解决方案

二、需求

现在有接近Z台分布式数据库服务器,M台汇总数据库。当前需要将Z台数据库中的每个数据库中的关键性数据同步到汇总数据库上。汇总数据库上的数据要求:实时,准确。

4434bca6b2e79f9809ac0510649c75a3.png

三、问题:

当前数据量比较大,数据插入更新频繁。当前根据类型分库,如果这一类数据出现问题,那影响的是这一类数据。

比如,当前有一亿条数据,这些数据分为A类,B类,C类等等。同时,A类数据在Z1数据库上,B类在Z2数据库上,C类在Z3数据库上。这些数据都会有一个唯一的Key。

这样每个类别的数据库分别建立同步机制。当前选择的同步机制是MSSQL发布订阅机制:

优点:方便

缺点:实时性差(数据量大时)

稳定性差(同步数据量大时,服务会停止,需要重新初始化,千万级别的数据就会同步半天甚至一天更多)

不够灵活(同步挂掉的时候,要从头开始同步,没有标志节点等等)

这样根据以上的数据库设计,如果这个库的数据同步服务挂掉,那么这一类数据的实时性、准确性都会受到影响。

四、解决方案

(一)数据存储

因为数据有唯一的key。不再根据A、B、C类去分类,我们将这些数据全部打散。根据算法存入设置的数据库。每个数据库400万的数据。

唯一标识 —> 算法—> 转化成1~255 —>分组—>存入数据库

1)、唯一标识算法码取到对应的值(1~255)

2)、我们将1~255,分位5组

Index         Value

1      1~50

2     51~100

3    101~150

4    151~200

5    201~255

3)、数据库和表

库:   国家&区域 — Index — 组别

D1—Index—1       * D国家1区 —Index — Index=1的,即Value1~50

表:   国家&区域 — Index(组别) — Data—表编号

D1—1—Data—1    * D国家1区 — 组别为1 — Data — Table1

D1—1—Data—2    * D国家1区 — 组别为1 — Data — Table2

库: 国家&区域 — Index — 组别

D1—Index—5       * D国家1区 —Index — Index=5的,即Value201~255

表:   国家&区域 — Index(组别) — Data—表编号

D1—5—Data—1    *D国家1区 — 组别为1 — Data — Table1

D1—5—Data—2    *D国家1区 — 组别为1 — Data — Table2

库: 国家&区域 — Index — 组别

G11—Index—3       * G国家11区 —Index — Index=3的,即Value101~150

表:   国家&区域 — Index(组别) — Data—表编号

G11—3—Data—1    *G国家11区 — 组别为3 — Data — Table1

G11—3—Data—2    *G国家11区 — 组别为3 — Data — Table2

说明:

数据根据算法得到的值(1~255),分别存入到对应组别下的数据库中,并且存入第一个表。当对应的的组别下的第一个表存满400万数据,立即在当前组别的数据库下创建第二个表,以此类推。

好处:

所有数据Key值算法得到的值(1~255),分散比较平均,而且值是不会变的。这样存储得平均而且分散,如果有新的大量数据进入,也会有很好的扩展性,每个表存满后就会创建新表。

问题:我们怎样去查数据?

数据Key—通过算法得到Value—找到对应的Index组别—到对应组别数据库下的表中查询相关数据(多个表可以多个并发)

(二)数据同步

因为业务库不能直连,我们采用webservice同步。将同步数据打到同步表中,有同步程序同步,同时服务端有接收程序进行处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值