← 全部工具
数据不出浏览器
UUID Generator — 在线生成
免费 UUID generator。一键生成 RFC 4122 版本 4 UUID,可批量复制。
- 63c26ce6-fc6c-4aef-b315-819f018ac921
- 4cddd3f1-fc9d-4c81-a402-17c690121fd7
- 1a43654c-14a5-4354-84d4-5ce0916dd03d
- 19f63728-ba60-4c8a-9931-41ac9a804842
- c6eb6305-e782-42ad-9801-86797e2c3f06
选对 UUID 版本
UUID 版本的重要性常被低估,因为它决定了数据库索引长什么样。完全随机的 v4 会散落到 B 树各处,造成索引碎片,写入密集的表越大越慢。时间有序的 v7 同样全局唯一,但随时间递增,插入位置靠近索引末尾,行为更接近自增整数。
当标识符需要在多个地方独立生成、无需协调时,或者当自增整数会泄露信息(例如你累计了多少订单)时,UUID 是对的。而当标识符要出现在人们会阅读的 URL 里时,它就不太合适——36 个字符既难输入也难记住。
有一点必须说清:UUID 不是密钥。v4 的随机性足够强,猜中一个并不现实,但 UUID 会被大量写日志、建索引、四处传递,而且没有有效期和吊销机制。凡是能授予访问权限的东西,都应当是有自己生命周期的凭据,而不是复用一个标识符。
常见问题
- 什么是 UUID?
- 通用唯一标识符,广泛用于数据库主键与分布式系统。
- v4 是随机的吗?
- 是。v4 使用密码学安全随机数。
- 会冲突吗?
- 理论上可能,但概率极低,实际可忽略。
- 该用 UUID v4 还是 v7?
- 新的数据库主键用 v7,因为它的时间前缀让插入保持顺序、索引更健康。当值本身不能暴露创建时间,或者只生成一次、几乎不重写(例如日志里的请求 ID)时,用 v4。
- UUID 适合做主键吗?
- 只要接受存储成本就可以:16 字节,索引比 4 字节整数宽,外键也更占空间。真正的性能问题来自随机性而不是体积,这正是时间有序版本存在的原因,也是纯 v4 方案在规模上去之后往往需要返工的原因。
- 可以用 UUID 当 API token 吗?
- 不建议,即使 v4 的随机性够强。token 需要有效期、作用域、轮换和吊销,而 UUID 一个都没有。请用专门的 CSPRNG 生成凭据,并只保存其哈希,这样数据库泄露也不会直接送出可用权限。