UUID 生成器
在线随机生成 UUID。选择 v4(纯随机)、v7(时间戳排序)或 NIL。支持批量输出、JSON 数组、大写等多种格式。
UUID 生成器常见问题
UUID 是什么?
UUID(通用唯一标识符)是一种 128 位的标识符,格式为 32 位十六进制数,按 8-4-4-4-12 分组并用连字符分隔:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。在 Microsoft 生态系统中也称为 GUID(全局唯一标识符)。UUID 广泛用于数据库主键、会话令牌、请求追踪 ID 等需要全局唯一标识的场景,避免分布式系统中的 ID 冲突。
UUID v4 和 UUID v7 有什么区别?
UUID v4 完全随机生成——122 个非保留位全部随机,碰撞概率极低,在任何实际使用场景中几乎不可能发生碰撞。UUID v7 使用当前 Unix 时间戳(毫秒级)填充前 48 位,后续位为随机数,因此 v7 UUID 按生成时间词典序排序,对数据库 B-tree 索引非常友好,写入性能比 v4 高得多。UUID v7 已在 RFC 9562(2024年)中标准化,是新项目数据库主键的首选。
什么是 NIL UUID?
NIL UUID 是 00000000-0000-0000-0000-000000000000,所有 128 位均为零。它是 UUID 标准中定义的特殊哨兵值,语义等同于「无 UUID」或「空值」。在测试数据中,当你需要一个 UUID 类型字段表示「未设置」状态、又不想用真实的随机 UUID 时,NIL UUID 非常有用。
生成的 UUID 能保证唯一吗?
UUID v4 有 122 位随机性。要有 1% 的概率发生一次碰撞,需要生成 2.6 × 10¹⁸ 个 UUID。对于任何实际应用——即使每秒生成数百万个——碰撞概率在天文数字量级之外。UUID v7 的随机位略少(74位 vs 122位),但时间戳 + 随机的组合同样使碰撞在实践中不可能发生。
GUID 和 UUID 有什么区别?
GUID(全局唯一标识符)是微软对 UUID 标准的实现。技术上两者格式完全相同——都是 128 位的 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 格式。GUID 这个术语用于 Windows、.NET、SQL Server 和 COM;UUID 这个术语用于 Linux、macOS、PostgreSQL/MySQL 等数据库和 Web API。两者完全可以互换使用。
能把生成的 UUID 用作数据库主键吗?
可以,但要注意版本选择。UUID v4 完全随机,会将写入分散到 B-tree 索引的各个位置,在大表中导致页分裂和写性能下降。UUID v7 按时间有序,顺序写入,对大表索引效率高得多。对于使用 PostgreSQL 17+ 或 MySQL 8.4+ 的新项目,推荐使用 UUID v7;对于 SQLite 或小数据集,v4 完全够用。本工具生成的 UUID 不会被存储,可安全用于您自己的系统。