- 所有已实现的接口:
- Id
已过时。
@ThreadSafe
@Deprecated
public class UUID8
extends Object
implements Id
在数据量较多的时候,
如果基于 ID 添加索引,字符串越长,则性能越差。
(1)uuid 是基于 16 进制的,将 128 位的 bit ,变为 16 进制。
0-F 0123456789ABCDEFG
(2)转换为 62 进制的信息,考虑便于阅读
0-9 52 个字母 共计 62 位
所以 32 位,分成 8 组,每一组 4 位。
16 * 4 = 64 位。
如果不想重复,需要 0xffff 共计 65535 的字符。
(3)缺点:会存在重复
重复的概率:
取62模会导致重复率大增 P(A)
短uuid重复概率未知 P(B)
uuid重复概率=x
P(A|B)=1
P(A|B') =y
全概率公式计算 P(A)=P(B)P(A|B)+P(B')P(A|B') =x+y-xy
其中y=((64-62)/64)^8=2^(-40) 看出x远小于y,所以短uuid的重复概率完全取决于y的值
(4)建议应用场景
可以用来生成一个 8 位的 token,而不是用来做唯一标识
- 从以下版本开始:
- 0.1.12
- 作者:
- binbin.hou