33
A
回答
46
一般來說,int
。
bigint
如果你認爲你將有更多的行比宇宙中的原子。
uniqueidentifier
,如果你需要全球唯一的密鑰(即保證是在所有表中的唯一模式中的鑰匙,甚至是唯一的(我不記得了))
另外兩個我非常有用不會使用他們不是整數類型(他們有分數,這只是沒有多少意義上的關鍵)
2
一個巨大的原因不使用GUID的PK是他們可怕的索引頁填充率 - 這種濫用可能會大大增加您的I/O性能成本。應該將GUID留作AK,並在可能的情況下用int衍生的PK驅動查詢。
0
對於32位處理器,int可能是最有效的處理大小。
20
你真的需要保留分開兩個不同的問題:
1)主鍵是一個邏輯結構 - 唯一和可靠地識別你的表中的一行重點候選人之一。這可以是任何東西,真的 - 一個INT,一個GUID,一個字符串 - 選擇對你的場景最有意義的東西。
2)聚集鍵(列或定義表上的「聚集索引」列) - 這是一個物理存儲相關的事情,在這裏,一個小的,穩定的,持續增長數據類型是您的最佳選擇 - INT或BIGINT作爲默認選項。
默認情況下,SQL Server表上的主鍵也用作集羣鍵 - 但這並不需要這樣!我個人認爲,隨着時間的推移,將以前基於GUID的主集羣密鑰分解爲兩個單獨的密鑰(GUID上的主(邏輯)密鑰)和單獨的INT IDENTITY(1上的集羣(排序) ,1)欄。
索引碎片下降到最低水平,因此索引查找性能已升高 - 強烈推薦!
馬克
1
爲準,以滿足您的特定需求
相關問題
- 1. SQL Server更改主鍵數據類型
- 2. 主鍵數據類型是否影響性能? SQL Server 2008
- 3. Sql Server 2005數據類型
- 4. SQL Server日數據類型?
- 5. SQL Server 2008數據類型
- 6. SQL Server XML數據類型
- 7. SQL服務器數據庫中的主鍵數據類型
- 8. SQL Server主鍵/外鍵
- 9. SQL Server - 在SQL Server中執行數據類型的過程
- 10. SQL Server 2005中的XML數據類型
- 11. SQL Server XML數據類型的差異?
- 12. SQL Server中的數據類型nvarchar? Asp.net?
- 13. Sql server 2005的數據類型
- 14. SQL Server的float數據類型
- 15. SQL Server:最常用的數據類型?
- 16. 如何列出SQL Server用戶定義表類型的主鍵?
- 17. 主鍵,其數據類型及其列名的SQL查詢?
- 18. Linq to SQL的最佳主鍵數據類型
- 19. 數據庫,sql server,sql哪個關鍵?
- 20. SQL Server微調浮點數據類型
- 21. SQL Server XML數據類型和QUOTED_IDENTIFIER
- 22. SQL Server空間數據類型
- 23. SQL Server 2005 UniqueIdentifier和C#數據類型
- 24. SQL Server十六進制數據類型
- 25. SQL Server XML數據類型LIKE比較
- 26. SQL Server貨幣數據類型問題
- 27. SQL Server數據庫附加類型
- 28. SQL Server:檢索數據類型長度
- 29. 在SQL Server中合併數據類型
- 30. SQL Server 2005數據類型和VB.NET
這取決於大小的
unsigned int
!在什麼情況下?需要更多信息... – 2008-11-01 05:50:53