UUID 生成

💬 留言讨论

常见问题

UUID v1、v4 和 v5 有什么区别? +

v1 基于时间(含时间戳+MAC地址,会暴露系统信息)。v4 随机生成(最常用,密码学随机)。v5 基于名称用 SHA1 哈希(确定性——相同输入始终生成相同 UUID)。

UUID 碰撞的概率有多低? +

对于 UUID v4,以每秒 10 亿的速度生成 85 年,才有 50% 的碰撞概率。实际上碰撞几乎不可能发生——需要生成约 2.7×10¹⁸ 个 UUID 才有 50% 碰撞概率。

UUID 和 GUID 是同一回事吗? +

本质上是的。GUID(全局唯一标识符)是微软对 UUID 的叫法,格式完全相同(8-4-4-4-12 十六进制字符)。微软 GUID 通常是 v4 随机 UUID,实现上有微小差异。

应该用 UUID 作为数据库主键吗? +

UUID 适合分布式系统主键(无需协调)。缺点是随机性导致索引碎片化——对性能要求高的场景考虑 ULID 或 UUID v7(顺序 UUID)。

如何在 JavaScript 中生成 UUID? +

现代浏览器和 Node.js 15+ 原生支持 crypto.randomUUID()。旧环境使用 npm 包:import { v4 as uuidv4 } from 'uuid'; const id = uuidv4();

相关文章

什么是 UUID,完整入门指南 UUID v1/v4/v5 版本区别详解 数据库中使用 UUID 主键的最佳实践 UUID 碰撞概率到底有多低 JavaScript 中如何生成 UUID 比 UUID 更短的 ID 方案