UUID
- 字母表36个 (0-9,A-Z)
- 长度32位:
位数构成:
- 1~8位采用系统时间,在系统时间上精确到毫秒级保证时间上的唯一性;
- 9~16位采用底层的IP地址,在服务器集群中的唯一性;
- 17~24位采用当前对象的HashCode值,在一个内部对象上的唯一性;
- 25~32位采用调用方法的一个随机数,在一个对象内的毫秒级的唯一性。
- 优势:当前最流行的方案 (有多种变种)
ULID
- 字母表32个 (0-9,A-Z),不包括字母I,L,O和U,以避免混淆和滥用
- 长度16位
位数构成:
- 48位时间戳
- 80位随机数
- 优势:可排序,可查询,可索引
NanoID
- 字母表64个(0-9,A-Z,a-z,-,_)
- 长度21位
- 位数构成:
暂无 - 优势: 性能比UUID快60%