IT老齐架构300讲笔记(007) 为什么大厂在大表做水平分表时严禁使用自增主键

目录

大表为什么不能用自增主键?

自增主键在分布式环境下不适用

UUID是好的替代方案吗?

​雪花算法

专栏链接:IT老齐架构300讲笔记专栏


大表为什么不能用自增主键?

         自增主键在分布式环境下不适用

  1. 资源浪费,因为自增主键必须连续
  2. 只能按范围法进行分片,ID的数量已固定,无法进行动态扩展
  3. 会产生尾部热点效应,即按范围法进行分片后,前面的分片已储存数据,最后一个分片的压力很大。Hash分片的效率更高。

UUID是好的替代方案吗?

不可以

  1. UUID是无序
  2. 无序导致大量索引重排
  3. 主键有序的情况下,B+树只需要在原有的数据后面追加即可


雪花算法

 雪花算法(SnowFlake)推特公司分布式项目采用的ID生成算法


结构:符号位(1bit)+  时间戳(41bit)+  机器ID(10bit)+  序列(12bit)


使用方法直接调用JAR包

雪花算法需要注意时间回拨带来的影响,可能出现id重复的可能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值