数据库分库分表后,我们怎么保证ID全局唯一

上两篇讲到了我们的系统在面临大并发读取的时候,采用了读写分离主从复制(数据库读写分离方案,实现高性能数据库集群)的方案去应对,后来又面临了大并发写入的时候,系统数据库采用了分库分表的方案(数据库分库分表方案,优化大量并发写入所带来的性能问题),通过垂直拆分以及水平拆分的方式,将数据分到多个库和多个表中去应对的,即现在是这样的一套分布式存储结构。数据库分库分表那篇也讲到了,使用了分库分...
摘要由CSDN通过智能技术生成

上两篇讲到了我们的系统在面临大并发读取的时候,采用了读写分离主从复制(数据库读写分离方案,实现高性能数据库集群)的方案去应对,后来又面临了大并发写入的时候,系统数据库采用了分库分表的方案(数据库分库分表方案,优化大量并发写入所带来的性能问题),通过垂直拆分以及水平拆分的方式,将数据分到多个库和多个表中去应对的,即现在是这样的一套分布式存储结构。

 

数据库分库分表那篇也讲到了,使用了分库分表势必会带来和我们之前使用不大相同的问题。今天,我将其中一个和我们开发息息相关的问题提出来进行讲解,也就是我们开发中所使用的的主键的问题。我们知道,以前我们单库的时候,主键唯一ID是自增的,现在好了,我们的数据被分到多个库的多个表里面了,如果我们还是使用之前的主键自增策略,那么这样就会出现两个数据插入到了两个不同的表会出现相同的ID值,这时我们该怎么去使用呢?

对于什么是主键,主键该怎么选,今天不做讲解,我相信大家可能比我还精通,我们今天主要是讲唯一主键ID在分布式存储系统下怎么生成,保证ID的唯一性且符合我们业务需要,才是我们开发人员最关心的实战。

 

UUID

这个时候,你可能会说,自增用不了,那我就是用UUID嘛,这个UUID生成出来的就是唯一的。的确,在我以前在一个公司中的确接触到是使用UUID来生成唯一主键ID的,而且性能还可以。但是,我想提一点的就是,当这个ID和我们业务交集不相关的时候是可以使用UUID生成主键的。比如,一般我们业务是需要用来做查询的,而且最好是单调递增的,这样我们的UUID就很

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师修炼

你看着干啥

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值