分库分表、多态机器分布式的情况下,就需要分布式ID生成算法,
分布式ID
UUID
- 优势就是本地生成,简单。
- 缺点:
- 太长了,32个十六进制数字,128 位
- 无序,如果当做数据库主键的话或者索引列,无序插入会导致数据页频繁分裂,性能不好。
雪花算法
雪花算法是一种生成分布式全局唯一id的算法,会得到一个64bit长度的long类型的数据。由四个部分组成,第一个bit位是符号位,因为id一般不会是负数,所以一般是0,接着41个bit位表示毫秒单位的时间戳,后面10个bit表示工作机器的id,最后用12个bit位表示递增的序列号。最后把64位拼接成一个long类型的数字。
大约 6 分钟