UUID 方案

UUID(Universally Unique Identifier)是最简单的分布式 ID 生成方案。本章详细介绍 UUID 的原理、优缺点和适用场景。

UUID 最大的优势是去中心化。每个应用实例都可以在本地生成 ID,不需要访问数据库、Redis 或专门的 ID 服务,因此可用性和接入成本都很好。对于文件名、请求追踪、离线客户端临时 ID、幂等键等场景,UUID 往往足够实用。

但 UUID 的问题同样明显。常见 UUID 字符串较长,存储和索引成本高;随机分布会导致数据库主键写入不连续,影响 B+Tree 局部性;它通常不具备业务可读性,也无法天然表达生成时间和来源节点。如果直接把 UUID 当作高频表的聚簇主键,写入性能和存储成本都可能变差。

本章会讨论 UUID 的版本差异、二进制存储优化、短 ID 表示以及适合和不适合的业务场景。重点不是背格式,而是理解为什么“本地生成、全局唯一”这个优势必须和“索引友好、长度可控、可排序”这些需求一起权衡。

完成本章后,你应当能判断:什么时候 UUID 是最快落地的好方案,什么时候它只是掩盖了后续数据库性能和业务可读性问题。

如果业务要求低耦合、离线生成和快速接入,UUID 很有价值;如果业务要求主键有序、短小可读或能承载业务含义,就需要继续向后面的中心化或半中心化方案演进。

章节