← 返回博客

什么是 UUID,完整入门指南

2026-04-01 · 5 分钟阅读

UUID 的定义

UUID(Universally Unique Identifier,通用唯一标识符)是一种 128 位(16 字节)的数字标识符,设计目标是在不依赖中央协调机构的情况下生成全球唯一的 ID。它通常以连字符分隔的十六进制形式表示:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,共 32 个十六进制字符 + 4 个连字符 = 36 个字符总长度。

一个典型的 UUID 例子:

550e8400-e29b-41d4-a716-446655440000

UUID 的历史背景

UUID 由 Apollo Computer 在 1980 年代初开发,最初用于分布式计算环境(Apollo Network Computing System)中识别网络对象。后来被 Open Software Foundation(OSF)纳入 DCE(分布式计算环境)规范,并最终以 RFC 4122 的形式成为 IETF 互联网标准。Microsoft 将其推广为 GUID(Globally Unique Identifier),本质上与 UUID 相同。

UUID 的结构

UUID 由 5 个分组组成:

UUID 的版本

RFC 4122 定义了 5 个 UUID 版本,2022 年新 RFC 草案(RFC 9562)又增加了版本 6、7、8:

UUID 的主要用途

UUID 在软件开发中广泛应用于:数据库主键(避免自增 ID 的顺序可预测性问题);分布式系统中跨节点的唯一 ID 生成(无需全局锁);API 请求的追踪 ID(request_id);文件名或资源命名(避免冲突);会话 ID 和令牌(但需要更强的安全性时应使用加密安全的随机数生成);日志关联标识符。

UUID 的优缺点

优点:全球唯一性(碰撞概率极低);无需中央协调机构;适合分布式系统;不泄露顺序信息(版本 4);标准化格式,跨语言跨平台支持好。缺点:36 字符比整数 ID 长很多,存储和传输开销更大;随机 UUID 的 B-Tree 索引性能较差(页分裂频繁);可读性差,人工调试不直观;版本 1 暴露 MAC 地址存在隐私风险。

何时使用 UUID,何时不用

推荐使用 UUID 的场景:分布式系统和微服务;需要在客户端生成 ID(不依赖服务器);需要避免暴露 ID 的顺序(如订单号不能被预测)。不推荐使用 UUID 的场景:单机小型应用(自增 ID 更简单高效);对数据库索引性能极为敏感的高写入场景(可考虑 UUID v7 或 ULID 替代);需要人类友好 ID 的场景(如短链接、邀请码)。

立即免费使用相关工具

免费使用 →