標籤:總數 應用 長度 sel 儲存空間 tostring 情況 數字 write
通用唯一識別碼(GUID,Globally Unique Identifier)是一種由演算法產生的二進位長度為128位的數位識別碼符。在理想情況下,任何電腦和電腦叢集都不會產生兩個相同的GUID。GUID 的總數達到了2^128(3.4×10^38)個,所以隨機產生兩個相同GUID的可能性非常小,但並不為0,用於產生GUID的演算法通常都加入了非隨機的參數(如時間),以保證這種重複的情況不會發生。
GUID字串形式格式是“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中x表示0-9或a-z中的任一字元,例如5ff62d65-492f-4b30-81b4-d0c23a4560dd就是一GUID字串。
用C#中產生GUID(預設小寫):
//產生新guidGuid guid1 = Guid.NewGuid();Console.WriteLine(guid1.ToString());//利用guid字串構造出guidGuid guid2 = new Guid(guid1.ToString());Console.WriteLine(guid2.ToString());Console.ReadLine();
用Sql Server產生GUID(預設大寫):
select NEWID()
Sql Server資料庫表中資料類型是uniqueidentifier的列即儲存GUID字串。
缺點:
1.GUID 值較長,不容易記憶和輸入,而且這個值是隨機、無順序的。
2.GUID 值有 16 個位元組,與其它那些諸如 4 位元組的整數相比要相對大一些。這意味著如果在資料庫中使用 uniqueidentifier 列作為主鍵,可能會帶來兩方面的消極影響:儲存空間增大;索引時間較慢。
優點:
1.同 IDENTITY 列相比,uniqueidentifier 列可以通過 NewID() 函數提前得知新增加的行 ID,為應用程式的後續處理提供了很大方便。
2.便於資料庫移植,其它資料庫中並不一定具有 IDENTITY 列,而 Guid 列可以作為字元型列轉換到其它資料庫中,同時將應用程式中產生的 GUID 值存入資料庫,它不會對目標資料帶來影響。
3.便於資料庫初始化,如果應用程式要載入一些初始資料, IDENTITY 列的處理方式就比較麻煩,而 uniqueidentifier 列則無需任何處理,直接用 T-SQL 載入即可。
4.便於對某些對象或常量進行永久標識,如類的 ClassID、對象的執行個體標識等。
GUID基本概念及C#、SqlServer中GUID基本用法