UUID/GUID生成器
快速生成UUID v1、v4、v5,支持批量生成、自定义格式、一键复制
UUID/GUID生成器完全指南
什么是UUID/GUID?
- 唯一性 - 在全球范围内唯一
- 无中心 - 无需中央服务器分配
- 标准化 - 遵循RFC 4122标准
- 高效 - 生成速度快
UUID版本对比
| 版本 | 生成方式 | 唯一性 | 应用场景 |
|---|---|---|---|
| UUID v1 | 基于时间和MAC地址 | 高 | 数据库记录、日志追踪 |
| UUID v4 | 随机生成 | 极高 | Web应用、API、通用场景 |
| UUID v5 | 基于名称和命名空间 | 确定性 | 确定性ID、命名空间 |
应用场景
🗄️ 数据库
作为主键或唯一标识符,特别是在分布式数据库中。
🌐 Web应用
用户ID、会话ID、请求ID等唯一标识。
📱 移动应用
设备ID、用户ID、事件追踪。
🔗 分布式系统
无需中央服务器的唯一ID生成。
📝 日志追踪
追踪请求链路、事件关联。
🎮 游戏开发
玩家ID、物品ID、房间ID等。
最佳实践
✅ 选择合适的版本
- Web应用优先使用UUID v4
- 需要时间顺序用UUID v1
- 需要确定性用UUID v5
✅ 存储和传输
- 数据库中使用二进制存储
- API中使用字符串格式
- 日志中使用标准格式
常见问题
Q: UUID会重复吗?
A: 理论上不会。UUID v4的碰撞概率极低,可忽略不计。
Q: UUID v1和v4的区别?
A: v1基于时间和MAC地址,v4完全随机。v4更安全,v1可排序。
Q: UUID的长度是多少?
A: 128位,通常表示为36个字符的字符串(含连字符)。
Q: 如何在数据库中存储UUID?
A: 使用UUID类型或CHAR(36)存储字符串格式。
UUID vs GUID 详细对比
- UUID - 通用唯一标识符(Universal Unique Identifier),由IETF标准化
- GUID - 全局唯一标识符(Globally Unique Identifier),微软的术语
- 在.NET和Windows系统中通常称为GUID
- 在其他系统中通常称为UUID
- 两者完全兼容,可以互换使用
何时使用UUID/GUID
✅ 分布式系统
在分布式系统中,无需中央服务器分配ID,每个节点都可以独立生成唯一标识符。
例如:微服务架构、分布式数据库、多数据中心系统
✅ 数据库主键
作为数据库表的主键,特别是在需要全局唯一性的场景。
例如:用户表、订单表、产品表
✅ Web应用
用于Web应用中的用户ID、会话ID、请求ID等。
例如:用户认证、API请求追踪、会话管理
✅ 移动应用
在移动应用中生成设备ID、用户ID、事件ID等。
例如:设备标识、用户追踪、事件分析
✅ 日志和追踪
用于日志追踪和请求链路追踪,关联不同系统的日志。
例如:分布式追踪、日志聚合、性能监控
✅ 文件和资源
为文件、资源、对象等生成唯一标识符。
例如:文件ID、资源URI、对象标识
何时不使用UUID/GUID
❌ 需要顺序ID
如果需要ID具有时间顺序性或递增特性,UUID不适合。
替代方案:使用自增整数或UUID v1(虽然v1可排序但不推荐)
❌ 存储空间受限
UUID占用较大空间(36字符或16字节),在存储空间受限的场景不适合。
替代方案:使用自增整数、短ID或哈希值
❌ 性能关键场景
UUID作为主键会影响数据库性能,特别是在高并发场景。
替代方案:使用自增整数或雪花算法(Snowflake)
❌ 需要可读性
UUID不易记忆和阅读,不适合需要人工识别的场景。
替代方案:使用自增整数、业务编码或短ID
❌ 单机系统
在单机系统中,自增整数更简单高效,无需UUID的全局唯一性。
替代方案:使用自增整数或序列
❌ 需要安全性
UUID v1可能泄露MAC地址,UUID v4虽然随机但不适合作为安全令牌。
替代方案:使用加密令牌或安全哈希
UUID版本详细说明
🕐 UUID v1 - 基于时间和MAC地址
生成方式:结合时间戳和MAC地址生成
优点:可排序、包含时间信息、生成速度快
缺点:可能泄露MAC地址、隐私问题、不够随机
🎲 UUID v4 - 随机生成
生成方式:完全随机生成
优点:完全随机、无隐私问题、安全性高、最常用
缺点:不可排序、无时间信息、碰撞概率极低但非零
📝 UUID v5 - 基于名称和命名空间
生成方式:基于命名空间和名称的SHA-1哈希
优点:确定性、相同输入产生相同UUID、可重现
缺点:需要命名空间、不够随机、使用场景有限
常见ID生成方案对比
| 方案 | 大小 | 可排序 | 性能 | 适用场景 |
|---|---|---|---|---|
| 自增整数 | 8字节 | ✅ 是 | ⭐⭐⭐⭐⭐ | 单机系统、高性能 |
| UUID v4 | 16字节 | ❌ 否 | ⭐⭐⭐ | 分布式系统、Web应用 |
| UUID v1 | 16字节 | ✅ 是 | ⭐⭐⭐⭐ | 需要时间顺序的分布式系统 |
| Snowflake | 8字节 | ✅ 是 | ⭐⭐⭐⭐⭐ | 分布式系统、高性能 |
| 短ID | 可变 | ❌ 否 | ⭐⭐⭐⭐ | 需要可读性的场景 |
同类工具推荐
二维码生成器
专业的在线二维码生成器,支持文本、URL、电话、邮箱、WiFi等多种内容生成QR码。生成的二维码可被微信、支付宝、QQ等应用扫描识别。可自定义大小、颜色、容错级别。完全免费,本地生成,保护隐私。
立即使用图片Base64互转
专业的在线图片Base64互转工具,支持图片转Base64编码、Base64转图片。支持JPG、PNG、GIF、WebP等多种格式。可预览、复制、下载。完全免费,本地处理,保护隐私。
立即使用Cron 表达式
专业的在线 Cron 表达式生成器,支持快捷预设(每分钟、每5分钟、每小时等),轻松生成和验证定时任务表达式。支持字段编辑、实时验证、中文描述。完全免费,本地处理,保护隐私。
立即使用热门工具推荐
电功率计算器
专业的电功率计算器,支持功率(P)、电压(V)、电流(I)之间的自动计算。输入任意两个值,第三个值自动计算。适用于电气工程、电路设计、用电安全等场景。完全免费,精确计算。
立即使用一元二次方程计算
专业的一元二次方程在线求根计算器,支持一元二次方程求解、判别式计算、韦达定理验证、根的判定等功能。适用于学生数学学习、教师教学辅助、工程技术计算等场景。输入方程系数a、b、c,快速计算方程的根。
立即使用余数计算
专业的在线余数计算器,支持余数计算、求余运算、取模计算、整除判断等功能。适用于学生数学学习、教师教学辅助、程序员开发调试、日常分配计算等场景。输入被除数和除数,快速计算商和余数。
立即使用