我正在用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