什么是 GUID?

GUID(全局唯一标识符)是微软对 UUID 标准的实现,是一个 128 位的标识符,用于在计算机系统中唯一标识信息。GUID 和 UUID 本质上是同一事物,只是名称不同。

快速了解

全称全局唯一标识符
创建时间1990 年代由微软创建(基于 UUID 标准)
规范文档官方规范

工作原理

GUID 是主要在微软技术(Windows、.NET、COM、SQL Server)中使用的术语,而 UUID 是其他地方使用的标准术语。两者遵循相同的格式:32 个十六进制数字,显示为 8-4-4-4-12。GUID 使用确保唯一性的算法生成,无需中央权威机构。在 .NET 中,Guid 结构提供了创建和操作 GUID 的方法。SQL Server 有 uniqueidentifier 数据类型用于存储 GUID。

主要特点

  • 128 位标识符,与 UUID 相同
  • 格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • UUID 的微软术语
  • 广泛用于 Windows 和 .NET
  • COM 组件由 GUID 标识(CLSID、IID)
  • SQL Server uniqueidentifier 类型

常见用途

  1. COM 组件标识(CLSID)
  2. Windows 注册表键
  3. .NET 应用程序标识符
  4. SQL Server 主键
  5. Active Directory 对象标识符

示例

loading...
Loading code...

常见问题

GUID 和 UUID 有什么区别?

GUID 和 UUID 是功能相同的 128 位标识符,都遵循相同的 RFC 4122 规范。GUID(全局唯一标识符)是微软在 Windows 和 .NET 环境中使用的术语,而 UUID(通用唯一标识符)是大多数其他平台和规范使用的标准术语。

两个 GUID 可能相同吗?

虽然理论上可能,但生成重复 GUID 的概率极低。有 2^128 种可能的组合,你需要生成约 27 亿亿个 GUID 才有 50% 的碰撞概率。在实际应用中,GUID 被认为是唯一的。

如何在 C# 或 .NET 中生成 GUID?

在 C# 中,使用 Guid.NewGuid() 生成新的 GUID。例如:Guid myGuid = Guid.NewGuid(); 这会创建一个版本 4(随机)GUID。可以使用 ToString() 转换为字符串,支持可选的格式说明符,如「N」(无连字符)、「D」(标准格式)、「B」(花括号)或「P」(圆括号)。

应该使用 GUID 作为数据库主键吗?

GUID 作为主键有利有弊。它们支持分布式 ID 生成而无需协调,且因不可预测而提高安全性。但它们比整数大(16 字节 vs 4-8 字节),可能导致索引碎片化,且更难调试。在高性能场景中,考虑使用顺序 GUID 或其他方案。

GUID 的格式是什么?

GUID 由 32 个十六进制字符组成,以 8-4-4-4-12 格式显示,如:3f2504e0-4f89-11d3-9a0c-0305e82c3301。标准表示包含连字符,但 GUID 也可以不带连字符存储,或根据上下文用花括号括起来。

相关工具

相关术语

相关文章