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 更好的数据库性能
- 无隐私问题
选择正确的版本
|-----|---------|
数据库中的 UUID
使用 UUID 作为主键时的考虑事项:
1. v7 用于排序插入:减少 B-tree 碎片
2. 二进制存储:使用 BINARY(16) 而不是 CHAR(36) 以节省空间
3. 索引:v7 UUID 在范围查询中的性能远优于 v4
使用我们的 UUID 生成器工具即时生成 UUID。