数据库主从库和集群库的理解一

出现的原因:如果我的业务类访问的数据库突然挂掉了,造成我们的业务瘫痪。这时候需要我保证我们业务正常访问,就出现了主从数据库和集群数据库。主要是针对业务的可用性来说。

集群数据库:如果我们的业务使用了两个数据库A、B,那么这个时候两个数据库的id如果是自增长的,那么id肯定会重复,那么这个时候即使前端来了一条数据,我们也不知道查那个表(问题1)?

为了解决(问题1),如是我们将A、B表的ID抽出来放到C表中生成,当A、B需要插入数据的时候,需要在C表中获取ID。这个时候解决了ID重复的问题。但是如果数据库插入很大的时候,一张生成ID的C表肯定会出现性能问题,出现这种性能问题的时候,我们又该怎么处理呢?(问题2)

解决问题2:因为性能不好,这个时候,我们将生成id的C表也拆分成C、D两张表来生成。这个是时候生成的ID,又不能确认唯一性,这么解决这个唯一性的问题?(问题3)

解决问题3 :使用步长来解决,如果是两张创建id的表,那么设置数据库创建表的id步长为2,这个时候第一个数据库创建的id是1,3,5,7.....。第二个创建id表的id是2,4,6,8...就不会出现重复。

性能进一步优化:我们可以在我们的业务层直接生成一个一段id的list集合,比如[1,1000],然后当使用到一定的比率的时候,我们在数据库中申请第二段[2000, 3000].这样,性能更好,不用每次都去访问数据库生成ID。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值