Guid與id區別

1、產生Guid的方法數據庫

一、SqlServer中使用系統自帶的NEWID函數: select NEWID()ide

二、C#中,使用Guid類型的NewGuid方法:函數

      Guid gid;
              gid = Guid.NewGuid();
              Console.WriteLine(gid);
              Console.WriteLine(Guid.NewGuid());post

2、Guid與int自動增長做主鍵的優缺點ui

int自動增字段的優勢:佔用空間小、無需開發人員干預、易讀;對象

  缺點:效率低,數據導入導出的時候很痛苦。blog

Guid的優勢:效率高,數據導入導出方便;缺點是佔用空間大,不易讀。索引

業界主流傾向使用Guid做主鍵。由於主鍵通常不是給外人看的,並且如今硬盤空間愈來愈大,不在意這一點空間。接口

========================================開發

優勢是: 同 IDENTITY 列相比,uniqueidentifier 列能夠經過 NewID() 函數提早得知新增長的行 ID,爲應用程序的後續處理提供了很大方便。 便於數據庫移植,其它數據庫中並不必定具備 IDENTITY 列,而 Guid 列能夠做爲字符型列轉換到其它數據庫中,同時將應用程序中產生的 GUID 值存入數據庫,它不會對原有數據帶來影響。 便於數據庫初始化,若是應用程序要加載一些初始數據, IDENTITY 列的處理方式就比較麻煩,而uniqueidentifier 列則無需任何處理,直接用 T-SQL 加載便可。 便於對某些對象或常量進行永久標識,如類的 ClassID,對象的實例標識,UDDI 中的聯繫人、服務接口、tModel標識定義等。 缺點是: GUID 值較長,不容易記憶和輸入,並且這個值是隨機、無順序的。 GUID 的值有 16 個字節,與其它那些諸如 4 字節的整數相比要相對大一些。這意味着若是在數據庫中使用 uniqueidentifier 鍵,可能會帶來兩方面的消極影響:存儲空間增大;索引時間較慢。

相關文章
相關標籤/搜索