首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

做主键用int增长好,还是用uniqueident(newid())好,该怎么解决

2012-03-20 
做主键用int增长好,还是用uniqueident(newid())好求解:做主键用int增长好,还是用uniqueident(newid())好[

做主键用int增长好,还是用uniqueident(newid())好
求解:
做主键用int增长好,还是用uniqueident(newid())好

[解决办法]
uniqueidentifier 数据类型的主要优点是保证newid函数生成的值在全球是唯一的
如果全球唯一性并不是必须的,或者需要一个连续递增的键,可以考虑使用identity属性
uniqueidentifier 数值类型有以下缺点:
值长且难懂,用户不便于记忆和使用(键入值的时候都比较容易出错)
这些值是随机的,而且他们不能接受任何使它们对用户变得有意义的模式
没有任何方式可以决定生成 uniqueidentifier 值的顺序,它们不适用于那些依赖递增的键值东东
虽然uniqueidentifier 数据类型具有16个字节,比4字节的证书相比要大一些,所以uniqueidentifier键建立的索引可能会比int键实现的索引要慢


[解决办法]
1、在uniqueidentifier 建索引,索引太宽
2、uniqueidentifier 不是单调递增的,经常会产生页拆分

所以最好在int上建索引,详细说明请见:

http://tuolang2006.spaces.live.com/

标题为《SQLServer数据库索引性能监控列表》的文章

[解决办法]
对比 int 和 uniqueidentifier
uniqueidentifier的主要优点除了保证值在全球唯一以外,
还有它的值产生在插入之前,而非插入之后才能取得。

热点排行