首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用newid和newsequentialid的组合主键

使用newid和newsequentialid的组合主键
EN

Stack Overflow用户
提问于 2010-01-09 05:34:28
回答 1查看 1.2K关注 0票数 0

我知道使用newid生成的GUID不是解决性能问题的好方法。

使用{newsequentialid(),newid()}的组合主键如何,这样新的GUID就会被保证大于之前生成的GUID?

这里也有性能问题吗?

你可能会想为什么会有人这样做,但我正在写一个代码分析规则,不知道用户会做什么疯狂的事情:)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-09 05:37:23

这甚至比仅使用newid()创建的直接的单个GUID更糟糕。

为什么??

_

  • 它仍然是完全随机的(因为

_it()部分),从而导致大量的索引标识是单个GUID的两倍大,使得所有非聚集索引更加臃肿,效率更低(32字节与4字节的INT标识)

因此,我会推荐以下两种方法:

  • 坚持只使用newsequentialid()作为PK的默认值,如果您确实想要和需要GUID样式的PK
  • 使用INT/BIGINT标识以获得最佳性能(如果复制不是复制

这是你有的最好的两个选择。请参阅Kimberly Tripp的优秀文章,了解为什么随机GUID是聚类键的一个非常非常糟糕的选择:

  • GUIDs as PRIMARY KEYs and/or the clustering key
  • The Clustered Index Debate Continues...
  • Ever-increasing clustering key - the Clustered Index Debate..........again!
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2030922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档