主键的选择:自增主键,UUID,雪花算法

1. 自增主键

缺点: 在分布式环境下有严重问题,因为自增主键必须连续,所以只能采用“范围分片”形式进行分布式设计,这样会产生“尾部热点”效应(也就是数据库的写入操作会集中一个“范围分片”表中)

2.UUID 主键

生成原理: UUID 是根据时间等其它因素生成的唯一无序的字符串,
缺点:

  1. 128位,浪费空间;
  2. 作为主键会涉级大量索引重排,因为字母的顺序是无序的

3.雪花算法 主键《推荐》

简介: 雪花算法(Snowflake)是Twitter 公司分布项目采用的ID 生成算法
生成原理:

符号位时间戳机器ID序列
1bit41bit10bit12bit
符号位,主要为了兼容长整型的格式记录本地的毫秒时间生成ID的节点,用10位长度给机器做编码,那意味着最大规模可以达到1024 个字节(2^10)序列的长度直接决定一个外节点1毫秒能够产生的ID数量,12位 就是4096(2^12)

注意事项:
时间回拨带来的影响,因为会根据本地毫秒时间

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值