C# GUID使用总结

2018年11月22日21:37:52 3 176

全局唯一标识符(GUID,Globally Unique Identifier)

也称作 UUID(Universally Unique IDentifier) 。

GUID是一种由算法生成的二进制长度为128位的数字标识符。

GUID主要用于在拥有多个节点、多台计算机的网络或系统中。

为什么要使用?

在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID标准的实现。

(1). GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。

通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。

(2). GUID永远是方便的

对于程序开发的各个方面,.NET Framework简化了建立和处理GUID数值的过程。在.NET程序需要的地方,这一功能很容易地生成唯一的数值。

GUID与自增长优缺点

缺点优点
GUID
  1. GUID过长,看表现形式,至少都有32位,长的38位,浪费存储空间
  2. GUID是根据硬件设备相关ID以及时间戳生成的
  3. GUID不利于检索、外键关联
  1. 一般来说不担心有冲突的影响,而且,根据GUID的生成规则,还能大致知道生成的计算机硬件设备、时间等信息(但这个有多少意义呢)
  2. 能在业务层就知道目标ID,而不是数据提交给数据库系统后才确定
自增长多数据库同步、读写分离十分不方便。使用简单

如何使用

C# GUID使用总结

  1. Guid.NewGuid().ToString()    : 1f13a943-4c7e-4bfc-aac5-935886591424
  2. Guid.NewGuid().ToString("N"): 3a81013f9ee549b38f11ee3d50f5bd78
  3. Guid.NewGuid().ToString("D"): c4219375-c2c8-4639-86e8-8d910ed12186  -- 默认为:D
  4. Guid.NewGuid().ToString("B"): {a793927d-9a1b-4d25-9562-0a59522db9c0}
  5. Guid.NewGuid().ToString("P"): (a99839b9-da94-40fd-87a5-4a5e73677b1f)
  6. Guid.NewGuid().ToString("X"): {0xb294a44e,0x43d9,0x4b60,{0xb5,0xb9,0x32,0x29,0xae,0x46,0x45,0x17}}

GUID永远是方便的

对于程序开发的各个方面,.NET Framework简化了建立和处理GUID数值的过程。在.NET程序需要的地方,这一功能很容易地生成唯一的数值。

weinxin
微信公众号
博客微信公众号,欢迎关注。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:3   其中:访客  2   博主  1

    • avatar 高中作文大全 1

      学习了,但是不太懂

        • avatar 萧瑟 博主

          @高中作文大全 这个就是生成一个唯一的数据,很方便。

        • avatar 天津网站建设 1

          很实用,不错