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 2008数据类型
- 4. Sql Server 2005数据类型
- 5. SQL Server日数据类型?
- 6. SQL Server XML数据类型
- 7. 的SQL Server:主键
- 8. SQL Server数据库镜像和主键
- 9. SQL服务器数据库中的主键数据类型
- 10. SQL Server主键/外键
- 11. Mule SQL Server数据源类类型
- 12. SQL Server - 在SQL Server中执行数据类型的过程
- 13. Sql server的强制主键
- 14. SQL Server:最常用的数据类型?
- 15. SQL Server中的数据类型nvarchar? Asp.net?
- 16. SQL Server中的XML数据类型?
- 17. Sql server 2005的数据类型
- 18. SQL Server的float数据类型
- 19. SQL Server 2005中的XML数据类型
- 20. SQL Server 2005的日期数据类型
- 21. SQL Server XML数据类型的差异?
- 22. C#的数据类型到SQL Server数据类型
- 23. 获取SQL Server中具有数据类型uniqueidentifier主键的所有表格
- 24. 如何列出SQL Server用户定义表类型的主键?
- 25. 数据库,sql server,sql哪个关键?
- 26. Linq to SQL的最佳主键数据类型
- 27. 主键,其数据类型及其列名的SQL查询?
- 28. Sql Server数据类型值问题
- 29. SQL Server十六进制数据类型
- 30. SQL Server浮点数据类型行为
这取决于大小的
unsigned int
!在什么情况下?需要更多信息... – 2008-11-01 05:50:53