使用INT做主鍵的優點:
1、需要很小的資料儲存空間,僅僅需要4 byte 。
2、insert和update操作時使用INT的效能比GUID好,所以使用int將會提高應用程式的效能。
3、index和Join 操作,int的效能最好。
4、容易記憶。
5、支援透過函式獲取最新的值,如:Scope_Indentity() 。
使用INT做主鍵的缺點
1、如果經常有合併表的操作,就可能會出現主鍵重複的情況。
2、使用INT資料範圍有限制。如果存在大量的資料,可能會超出INT的取值範圍。
3、很難處理分散式儲存的資料表。
使用GUID做主鍵的優點:
1、它是獨一無二的。
2、出現重複的機會少。
3、適合大量資料中的插入和更新操作。
4、跨伺服器資料合併非常方便。
使用GUID做主鍵的缺點:
1、儲存空間大(16 byte),因此它將會佔用更多的磁碟大小。
2、很難記憶。join操作效能比int要低。
3、沒有內建的函式獲取最新產生的guid主鍵。
4、GUID做主鍵將會新增到表上的所以其他索引中,因此會降低效能。
總結:
上面列出了GUID和INT兩種資料型別做主鍵優缺點。我覺得,對於大資料量,建議使用guid做主鍵。而使用int會得到最佳的效能。
使用INT做主鍵的優點:
1、需要很小的資料儲存空間,僅僅需要4 byte 。
2、insert和update操作時使用INT的效能比GUID好,所以使用int將會提高應用程式的效能。
3、index和Join 操作,int的效能最好。
4、容易記憶。
5、支援透過函式獲取最新的值,如:Scope_Indentity() 。
使用INT做主鍵的缺點
1、如果經常有合併表的操作,就可能會出現主鍵重複的情況。
2、使用INT資料範圍有限制。如果存在大量的資料,可能會超出INT的取值範圍。
3、很難處理分散式儲存的資料表。
使用GUID做主鍵的優點:
1、它是獨一無二的。
2、出現重複的機會少。
3、適合大量資料中的插入和更新操作。
4、跨伺服器資料合併非常方便。
使用GUID做主鍵的缺點:
1、儲存空間大(16 byte),因此它將會佔用更多的磁碟大小。
2、很難記憶。join操作效能比int要低。
3、沒有內建的函式獲取最新產生的guid主鍵。
4、GUID做主鍵將會新增到表上的所以其他索引中,因此會降低效能。
總結:
上面列出了GUID和INT兩種資料型別做主鍵優缺點。我覺得,對於大資料量,建議使用guid做主鍵。而使用int會得到最佳的效能。