对比

UUID v7 与 UUID v4 对比

v4 看不出创建时间。v7 把毫秒写进编号,这会改变排序,也可能改变索引的增长方式。

UUID v4UUID v7
规范RFC 9562 第 4 版RFC 9562 第 7 版
时间没有48 位 Unix 毫秒
随机位去掉版本和变体后有 122 位本站为 74 位(12 + 62)
文本排序不按时间按毫秒
同一毫秒不适用本站是随机数,不是计数器
是否露出时钟否是,精度到毫秒

随机 v4 主键往往会插到 B-tree 的各处。时钟往前走时,v7 更常落在较新的一侧。这可能减少分散的页分裂,但取决于表、填充因子和写入者的数量。它不能保证查询变快。

因为时间可见,不要把 v7 用在创建时间本身敏感的地方。两个版本都不是密钥。

常见问题

哪一个是随机的?

除了版本位和变体位,v4 使用随机位。本站的 v7 使用毫秒时间戳,再加上 74 位随机数。

哪一个按时间排序?

只有 v7 把时间放在高位,所以标准文本会按毫秒排序。v4 不会。

v7 会取代 v4 吗?

不会。如果不希望编号本身露出时间,v4 仍然是正常选择。