什么是UUID?
UUID(Universally Unique Identifier)即通用唯一识别码,是一种软件构建的标准,也是开放软件基金会(OSF)组织在分布式计算环境(DCE)领域的一部分。
UUID格式
标准的UUID由32个十六进制数字组成,分为5段,每段用连字符分隔,总长度为36个字符。格式如下:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
例如:550e8400-e29b-41d4-a716-446655440000
UUID版本
- UUID v1 - 基于时间戳和MAC地址生成,包含计算机网卡地址和时间信息
- UUID v2 - 基于DCE安全的UUID,较少使用
- UUID v3 - 基于MD5哈希和命名空间生成,确定性生成
- UUID v4 - 基于随机数生成,使用最广泛,本工具使用此版本
- UUID v5 - 基于SHA-1哈希和命名空间生成,比v3更安全
应用场景
- 数据库主键:作为分布式系统中数据库表的主键,避免冲突
- 会话标识:Web应用中的会话ID(Session ID)
- 文件标识:唯一标识上传或存储的文件
- 消息队列:消息追踪和关联的唯一标识
- API请求:追踪API请求和响应的唯一标识
- 测试数据:生成唯一的测试数据
UUID的优势
- 全局唯一性:在分布式系统中无需担心ID冲突
- 无需中心节点:各节点可独立生成,不依赖中央服务器
- 标准统一:国际标准,各语言和系统都有良好支持
- 信息不包含:v4版本不包含时间、机器等敏感信息
UUID的注意事项
- 占用空间大:相比自增ID占用更多存储空间
- 无序性:v4随机生成的UUID是无序的,作为索引时性能较差
- 可读性差:一长串十六进制数字不如自增ID直观