首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对标识列使用唯一标识符(GUID)还是bigint更好?

对标识列使用唯一标识符(GUID)还是bigint更好?
EN

Stack Overflow用户
提问于 2009-02-02 21:08:03
回答 10查看 34.4K关注 0票数 34

对于SQL server,对标识列使用唯一标识符(GUID)还是bigint更好?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-02-02 21:10:36

这取决于你在做什么:

  • 如果速度是首要问题,那么普通的老式int可能就足够大了。
  • 如果您确实要有超过20亿条(带B ;)的记录,则使用bigint或顺序guid。
  • 如果您需要能够轻松地与远程创建的记录进行同步,则Guid确实很棒。<代码>H29<代码>F210

更新

有关Guids的其他(不太明显)说明:

performance

  • You
  • 它们对索引的要求可能很高,而且切入数据库核心的guids可以使用顺序guids来恢复一些索引性能,但放弃了第二点中使用的一些随机性。
  • guids可能很难手动调试(where id='xxx-xxx-xxxxx'),但您也可以通过顺序guids (where id='xxx-xxx' + '123')获得一些恢复。
  • 出于同样的原因,Guids可以使基于ID的安全攻击变得更加困难-但并非不可能。(你不能只输入'http://example.com?userid=xxxx',然后期望得到别人账户的结果)。
票数 53
EN

Stack Overflow用户

发布于 2009-02-02 21:09:25

一般来说,我会推荐BIGINT而不是GUID (因为guids又大又慢),但问题是,你真的需要它吗?(例如,您是否正在进行复制?)如果您期望的行数少于20亿行,那么传统的INT就足够了。

票数 8
EN

Stack Overflow用户

发布于 2009-02-02 21:11:52

如果您正在进行复制,或者您的销售人员正在运行需要合并的断开连接的数据库,请使用GUID。否则我会选择int或bigint。从长远来看,它们更容易处理。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/504905

复制
相关文章

相似问题

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