UUID v7 Generator
生成 UUID v7 标识符 —— RFC 9562 标准化的可按时间排序的 UUID。每个值嵌入了一个 48 位的 Unix 毫秒时间戳,后跟 74 位随机比特,因此它们按创建时间排序,是出色的数据库主键。可选的 monotonic 模式可保证同一毫秒内严格递增的值。生成过程完全在您的浏览器中运行。
48 位 Unix-ms 时间戳 · 4 位版本(7)· 12 位 rand_a · 2 位 variant · 62 位 rand_b。高位时间戳使 UUID v7 在字典序上可按时间排序。
⏱
点击生成以创建按时间排序的 UUID v7 id
使用方法
选择数量
选择要生成的 UUID v7 值的数量 —— 从单个 id 到一次最多 25 个。
生成按时间排序的 UUID
每个 id 在其前 48 位中编码当前的 Unix-ms 时间戳,之后跟随 74 位随机比特。启用 monotonic 模式可在同一毫秒内突发生成时保证严格的顺序。
复制或下载
复制单个 UUID、复制完整列表,或下载为纯文本文件。每一行还会显示嵌入的创建时间戳,以便您可以验证顺序。
常见问题
什么是 UUID v7?
UUID v7 是 RFC 9562(2024 年 5 月)中定义的 128 位标识符。前 48 位编码 Unix 毫秒时间戳,后跟 4 位版本字段、12 位随机比特(rand_a)、2 位 variant 以及另外 62 位随机比特(rand_b)。由于时间戳位于高位,两个 UUID v7 值可以按字典序排序,结果与按创建时间排序相同。
为什么使用 UUID v7 而不是 UUID v4?
UUID v4 是完全随机的,这会使插入操作分散在 B-tree 索引中,损害大表的写入性能。UUID v7 按时间排序,因此新行追加在索引的右侧 —— 接近自增主键的性能,同时保留 UUID 的全局唯一性和不可猜测性。PostgreSQL 18 因此提供了原生的 uuidv7() 函数。
monotonic 模式有什么作用?
当您在同一毫秒内生成许多 id 时,两个值的时间戳可能相等但 rand_a 较小,从而破坏严格的顺序。monotonic 模式强制 rand_a 在同一毫秒内严格递增 —— 在需要稳定排序的高速突发场景中非常有用。
之后可以提取时间戳吗?
可以。前 12 个 hex 字符(或前 6 个字节)是 big-endian 形式的 Unix 毫秒时间戳。使用 UUID Decoder 工具可以将任何 UUID v7 解析回其时间戳、版本、variant 和随机比特。
这些 id 是否在密码学上安全?
是的。74 位随机比特来自 crypto.getRandomValues(),即浏览器的 CSPRNG。时间戳并非机密,但随机比特使碰撞在天文数字上不可能发生,并防止猜测相邻的 id。