返回博客
uuid 2025-02-05

UUID 版本:何时使用哪个版本

UUID 版本(v1、v4、v5、v7)的全面比较,以及选择正确版本的实用指南。

UUID(通用唯一标识符)是软件开发中广泛使用的 128 位标识符。由于有多个版本可用,选择正确的版本很重要。

UUID 格式

所有 UUID 遵循相同的格式:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx,其中 M 表示版本,N 表示变体。

UUID 版本 1:基于时间

UUID v1 使用当前时间戳和机器的 MAC 地址。

优点

  • 按创建时间自然排序
  • 跨机器保证唯一性
  • 适用于无需协调的分布式系统

缺点

  • 暴露 MAC 地址(隐私问题)
  • 暴露创建时间戳

UUID 版本 4:随机

UUID v4 完全由随机数生成。

优点

  • 无信息泄露
  • 实现简单
  • 最广泛使用的版本

缺点

  • 不可排序
  • 数据库索引性能差

UUID 版本 7:时间有序(最新)

UUID v7 结合了 Unix 时间戳和随机数据。

优点

  • 字典序可排序(非常适合数据库索引)
  • 包含毫秒精度时间戳
  • 比 v4 更好的数据库性能
  • 无隐私问题

选择正确的版本

用例推荐版本

|-----|---------|

通用 IDv4 数据库主键v7 基于名称的确定性 IDv5 时间排序事件v7 最大隐私v4

数据库中的 UUID

使用 UUID 作为主键时的考虑事项:

1. v7 用于排序插入:减少 B-tree 碎片

2. 二进制存储:使用 BINARY(16) 而不是 CHAR(36) 以节省空间

3. 索引:v7 UUID 在范围查询中的性能远优于 v4

使用我们的 UUID 生成器工具即时生成 UUID。