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

1. 自增主键

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

2.UUID 主键

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

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

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

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

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

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

你可能感兴趣的:(主键的选择:自增主键,UUID,雪花算法)