跳到主要内容
← 返回

UUID v7/v4 生成器 - NanoID/ULID 在线批量生成

媒体
本地运行 · 不上传

免费在线 UUID 生成器:支持 UUID v7(时间有序、索引友好)/v4、NanoID、ULID 批量生成,可解析版本与时间戳,本地生成不出浏览器。

结果有帮助吗?

本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。

下一步

使用指南

UUID(通用唯一标识符)是 128 位的随机标识符,用「空间换概率」的方式保证全局唯一——不需要中心节点分配,任何人任何时候生成都不会撞车。本工具生成 RFC 4122 标准的 UUID v4(随机版本),并支持批量生成。

1. 生成与使用

  1. 点击「生成」得到一个 UUID v4(如 3b241101-e2bb-4255-8caf-4136c566a962)。
  2. 需要多个时调大数量一次生成,列表可整批复制。
  3. 大写/小写与是否保留连字符均可切换,适配不同系统的主键格式要求。

2. 为什么 v4 不会重复

v4 的 122 位随机位提供约 5.3×10^36 种组合。按每秒生成 10 亿个的速度跑 86 年,出现一次碰撞的概率也只有 50%。换句话说:在单表主键、分布式追踪 ID、会话令牌这类场景里,你几乎不可能亲手制造一次碰撞——数据库唯一索引只是最后的安全网。

3. 什么场景适合 UUID,什么场景不适合

  • 适合:分布式系统的主键/追踪 ID(各节点独立生成不冲突)、会话与 API 令牌、文件名防碰撞。
  • 不适合做数据库聚簇主键:v4 完全随机导致 B+ 树频繁页分裂,写入密集的大表用自增或雪花 ID(趋势递增)性能更好。
  • 需要「按时间排序」的 ID 考虑 UUID v7(时间戳前缀)——本站另有 v4/v7 对比文章。
  • 对外暴露的 UUID 不携带任何信息量(无序列号含义),这既是优点(不可枚举)也是缺点(无法从 ID 读出时间或来源)。

4. UUID v7:为什么数据库更喜欢它

v7 是 RFC 9562 定义的最新版本:前 48 位是 Unix 毫秒时间戳,其余是随机位。效果是 ID 按生成时间自然有序——作为数据库主键时 B-tree 索引的写入是顺序追加而非随机散布,插入性能与页缓存局部性都显著优于 v4。选型一句话:对外暴露且无需时序用 v4;做主键/排序键用 v7。注意 v7 泄露生成时间(可从 ID 解出毫秒),对时间敏感的场景(如竞拍顺序)要评估是否可接受。本工具的解析器可直接从 v7 提取时间戳验证这一点。

5. UUID 各版本的真实取舍

v4(随机)与 v7(时间有序)覆盖绝大多数新场景:v4 无信息量但实现最简单;v7 把 48 毫秒级时间戳放在高位,既保留唯一性又让主键在 B+ 树里近乎顺序写入——对 MySQL/PostgreSQL 这类聚簇索引,v7 主键的插入性能与页分裂表现显著优于 v4。v1(MAC 地址+时间)泄露机器标识已不建议;v5/v8 命名空间哈希适合「同一输入必须得到同一 ID」的确定性映射(如把邮箱映射为稳定 ID)。NanoID 与 ULID 是两个值得知道的替代:NanoID 更短(21 字符达 UUID 同级碰撞概率)适合 URL 场景;ULID 可字典排序且大小写敏感可读性更好。

6. 碰撞概率的直觉

  • v4 的 122 位随机空间:生成 10 亿个 UUID 后出现一次碰撞的概率仍约为一千亿分之四——工程上可视为不会碰撞。
  • 真正的碰撞风险不在随机数而在实现:用了弱随机源(Math.random)、复用了种子、或在分布式时钟回拨下的 v1/v7 才会出问题。
  • 业务上仍建议数据库层保留唯一索引兜底——概率防不住实现 bug。

常见问题

支持 UUID v4、UUID v7、NanoID(21 字符即达 UUID 同级碰撞概率,适合放进 URL)与 ULID(可按字典序排序)。随机数来自浏览器原生 crypto.getRandomValues,密码学安全,不是可预测的 Math.random。大小写与连字符可切换,批量生成后可整批复制。

v4 不适合做聚簇主键:完全随机导致 B+ 树频繁页分裂,写入密集的大表用自增或雪花 ID 更稳。要做主键/排序键优先 UUID v7——前 48 位是毫秒时间戳,插入近乎顺序追加,页缓存局部性也更好。注意 v7 能从 ID 解出生成时间,对时间敏感的场景要先评估。

v4 有 122 位随机空间:生成 10 亿个后出现一次碰撞的概率约千亿分之四,工程上可视为不会碰撞。真正的风险在实现而非概率——弱随机源(Math.random)、复用种子、v1/v7 遇到时钟回拨才会出问题;数据库保留唯一索引兜底仍是好习惯。

对外暴露且无需时序用 v4:不携带信息量,不可枚举。需要按时间排序或做主键用 v7。v5/v8 命名空间哈希适合「同一输入必须得到同一 ID」的确定性映射,比如把邮箱映射为稳定 ID。v1 含 MAC 地址与时间,泄露机器标识,已不建议使用。

没有任何留存。ID 由浏览器本地即时生成并展示,页面不保存生成历史,也不向任何服务器回传结果。

相关工具

相关文章