我正在用SqlServer和Linq to Sql啓動新項目。 對於表中的代理鍵,哪種數據類型會更好:identity
或uniqueidentifier
?Linq to SQL的最佳主鍵數據類型
據我所知,identity
是插入時自動生成的,而uniqueidentifier
應該在代碼(GUID)中生成。
是否有任何顯着的性能差異? 例如插入後必須讀取identity
值,因此插入後會有額外的數據庫跳閘。
編輯:
我發現了非常詳細的答案另一個問題:Tables with no primary keys。閱讀選定的答案。
編輯2:
有關代理鍵對於答案:我喜歡比自然鍵更加代理鍵。該決定已經完成,因此請不要建議重新考慮數據庫設計。另外,請不要討論自然和代理鍵的優缺點。
是的,SQL 2005中的新函數是NEWSEQUENTIALID(),它緩解了這個問題。但當乘以百萬(?)行時,有16個字節是很多... – 2008-10-31 12:46:13