UUID和GUID有什么区别?
GUID是微软的术语,本质上是同一标准的128位标识符。
即时生成v4 UUID,支持批量生成
理论上可能,但概率极低(约5.3×10^36分之一),实际上不会发生。
GUID是微软的术语,本质上是同一标准的128位标识符。
可以,UUID只包含十六进制字符(0-9, a-f)和连字符,均为URL安全字符。
UUID(通用唯一识别码)是用于在软件系统中唯一标识对象的128位标识符。广泛用于数据库主键、会话令牌、文件名以及API资源标识,任何需要避免ID冲突的场景都可以使用。
UUID v4完全由随机数生成,是最简单、最广泛支持的版本。v4具有122位随机性,即使每秒生成10亿个UUID持续100年,出现重复的概率仍接近于零。
v1基于当前时间戳和MAC地址生成,可排序但会泄露网络信息。v4纯随机,适用于绝大多数场景。v5用SHA-1哈希从命名空间和名称生成确定性UUID。v7结合毫秒时间戳和随机性,生成自然可排序的UUID,适合对数据库写入顺序有要求的场景。
UUID主键让多台服务器无需中央计数器即可同时创建记录,非常适合分布式系统。缺点是v4随机UUID会随机插入B树索引导致碎片化。使用v7可保持插入顺序提升性能,PostgreSQL中建议使用uuid原生类型(16字节)存储。
UUID标准格式为8-4-4-4-12十六进制字符,用连字符分隔,例如:550e8400-e29b-41d4-a716-446655440000。某些系统也使用去掉连字符的32字符紧凑格式。UUID大小写不敏感,通常约定使用小写。