Mysql自增id、uuid、雪花算法id的比较

MySQL自增id:

优点:
1.简单易用
​ MySQL自增id 由数据库自动生成。
2.效率高
自增id是按顺序递增的,可以提高插入和查询的效率。
3.索引效率高
自增id可以作为主键或索引列,提高查询效率。

缺点:
1.不适用于分布式系统
在分布式环境下,多个节点生成的自增id可能会冲突,需要额外的处理机制。

UUID

优点:
1.全球唯一性
UUID在全球范围内保证了唯一性,不会出现重复的情况。

缺点:
1.存储空间大
UUID占用的存储空间较大,通常为36个字符,如果作为主键,会占用更多的存储空间。
2.索引效率低
UUID是随机生成的,不具有顺序性,导致索引效率较低。
3.查询效率低
由于索引效率低,查询效率也会受到影响。

雪花算法唯一 id

雪花算法,可以生成唯一id,id 只包含数字, 长 64位。

雪花算法生成的 id,包括 符号位(1位),时间戳( 41位) ,数据中心ID (5位), 机器ID(5位), 序列号(12位)。。

符号位(1位):始终为数字 0, 留作未来使用,有可能被用来区分有符号数和无符号数。
时间戳( 41位) :纪元开始以来的毫秒数。
数据中心ID (5位) :最多可以有 32 个 ( 2^ 5) 机器。
序列号 (12位) :对于某个机器/进程, 每生成 一个ID,序列号就加1,这个数字每毫秒开始时都会被重置 为0。

雪花算法 id:

优点:
1.分布式环境下唯一性
雪花id在分布式系统中生成唯一的id,可以满足分布式环境下的需求。

缺点:
1.依赖于机器时钟
雪花id 的生成依赖于机器的时钟,如果时钟回拨或者时钟不同步,可能会导致生成的id不唯一。
2.存储空间较大
雪花id 占用的存储空间较大,通常为64位,如果作为主键,会占用更多的存储空间。
3.查询效率低
由于雪花id 是随机生成的,不具有顺序性,导致索引效率较低。

参考资料

《搞定系统设计》
https://blog.csdn.net/JSUITDLWXL/article/details/135644456

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值