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();