MySQL基础学习笔记——分布式ID方案选择(1):UUID

分布式ID方案选择

UUID

  • UUID是通用唯一识别码(Universally Unique Identifier)的缩写,开放软件基金会(OSF)规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素。利用这些元素来生成UUID
  • UUID是由128位二进制组成,一般转换成十六进制,然后用String表示。
550e8400-e29b-41d4-a716-446655440000
UUID的优点
  • 通过本地生成,没有经过网络I/O性能较快
  • 无序,无法预测他的生成顺序。(当然这个也是他的缺点之一)
UUID的缺点
  • 128位二进制一般转换成36位的16进制,太长了只能用String存储,空间占用较多
  • 不能生成递增有序的数字

数据库主键自增

  • 大家单一唯一标识最容易想到的就是主键自增,这个也是我们最常用的方法。例如我们有个订单服务,那么把订单id设置位主键自增即可。
    • 单独数据库记录主键;
    • 业务数据库分别设置成不同的自增起始值和固定步长,如:
第一台 start 1  step 9 
第二台 start 2  step 9 
第三台 start 3  step 9
优点
  • 简单方便,有序递增,方便排序和分页;
缺点
  • 分库分表会带来问题,需要进行改造;
  • 并发性不高,容易受限于数据库的性能;
  • 简单递增容易被其他人猜测利用,比如:你有一个用户服务用的递增,那么其他人可以根据分析注册的用户ID来得到当天你的服务有多少人注册,从而就能猜测出你这个服务当前的一个大概状况。
  • 数据库宕机服务不可用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鬼义II虎神

打赏5C币,作者可获得4C币

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

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

打赏作者

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

抵扣说明:

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

余额充值