全局唯一標識符(GUID,Globally Unique Identifier)
What is GUID
也稱作 UUID(Universally Unique IDentifier) 。
GUID是一種由算法生成的二進制長度為128位的數字標識符。
GUID主要用於在擁有多個節點、多台計算機的網絡或系統中。
Why to use 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 | 1. GUID過長,看表現形式,至少都有32位,長的38位,浪費存儲空間 2. GUID是根據硬件設備相關ID以及時間戳生成的 3. GUID不利於檢索、外鍵關聯 |
1. 一般來說不擔心有沖突的影響,而且,根據GUID的生成規則,還能大致知道生成的計算機硬件設備、時間等信息(但這個有多少意義呢) 2. 能在業務層就知道目標ID,而不是數據提交給數據庫系統后才確定 |
自增長 | 1. 多數據庫同步、讀寫分離十分不方便。 | 1. 使用簡單 |
How to use GUID
C# 中使用GUID
Guid.NewGuid().ToString() : 1f13a943-4c7e-4bfc-aac5-935886591424
Guid.NewGuid().ToString("N"): 3a81013f9ee549b38f11ee3d50f5bd78
Guid.NewGuid().ToString("D"): c4219375-c2c8-4639-86e8-8d910ed12186 -- 默認為:D
Guid.NewGuid().ToString("B"): {a793927d-9a1b-4d25-9562-0a59522db9c0}
Guid.NewGuid().ToString("P"): (a99839b9-da94-40fd-87a5-4a5e73677b1f)
Guid.NewGuid().ToString("X"): {0xb294a44e,0x43d9,0x4b60,{0xb5,0xb9,0x32,0x29,0xae,0x46,0x45,0x17}}
作者: 風禾互聯