EN
首页 分类 UUID / GUID 生成

UUID / GUID 生成

UUID/GUID 在线生成器,支持 v4 随机、v1 时间戳、v7 时间排序版本,批量生成,大小写与连字符格式自定义

常见问题

v4、v1、v7 有什么区别?

v4 完全随机;v1 基于时间戳加节点信息;v7 把时间戳放在高位,天然按时间排序,做数据库主键时索引更友好。

生成的 UUID 会重复吗?

v4 有 122 位随机空间,实际使用中重复概率可以忽略。但真要做唯一性保证,应该靠数据库唯一约束而不是概率。

UUID 里的连字符能去掉吗?

可以,工具支持去连字符、改大小写、加大括号等格式调整,取决于你的系统要求。

关于这个工具

三个版本的差别不只是「随机还是有序」:

  • v4:122 位随机(6 位固定为版本与变体位),不携带任何时间或机器信息。
  • v1:60 位时间戳(100 纳秒精度,从 1582 年起算)+14 位 clock_seq+48 位 node。本工具的 node 用随机值而不是网卡 MAC(避免泄露硬件信息),并在同一页面内保持稳定;同一毫秒内连续生成时时间戳按 100ns 递进,所以批量结果天然按生成顺序排序、不会重复。
  • v7:48 位毫秒时间戳放在最前面,其余随机,字符串顺序即时间顺序。同一毫秒内的多个 v7 之间顺序是随机的(没有单调计数器),需要严格有序得用 ULID 或自己加序列号。

单次上限 500 个。生成很快,但复制和粘贴的成本随数量线性增长,按需生成即可。

格式选项会叠加:先去连字符,再转大写,最后加大括号。去掉连字符后仍是 32 个十六进制字符;写数据库时用 BINARY(16) 存,比 CHAR(36) 省一半空间和索引体积。

一个常见误用:把 v4 当 MySQL 聚簇主键。随机串会让 B+ 树不停在中间插入、反复触发页分裂,写入吞吐随数据量明显下降;换成 v7 这类有序值,或者转成二进制存储,问题自然消失。