微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Guid vs INT - 哪个更好作为主键?

如何解决Guid vs INT - 哪个更好作为主键?

GUID 优点

  • 每个表、每个数据库和每个服务器都是唯一的
  • 允许轻松合并来自不同数据库的记录
  • 允许跨多个服务器轻松分布数据库
  • 您可以在任何地方生成 ID,而不必往返于数据库,除非需要部分顺序(即使用newsequentialid()
  • 大多数复制方案无论如何都需要 GUID 列

GUID 缺点

  • 它比传统的 4 字节索引值大 4 倍;如果您不小心,这可能会对性能和存储产生严重影响
  • 调试繁琐 ( where userid='{BAE7DF4-DDF-3RG-5TY3E3RF456AS10}')
  • 生成的 GUID 应该部分顺序以获得最佳性能(例如,newsequentialid()sql Server 2005+ 上)并启用聚集索引

如果您确定性能并且不打算复制或合并记录,请使用int,并将其设置为自动增量(sql Server 中的标识种子)。

解决方法

我一直在阅读使用或不使用Guidint.

int更小,更快,易于记忆,保持时间顺序。至于Guid,我发现的唯一优势是它是独一无二的。在哪种情况下 aGuid会比 a 更好int,为什么?

从我所见,int除了数量限制之外没有任何缺陷,这在许多情况下是无关紧要的。

究竟为何而Guid生?我实际上认为它除了作为简单表的主键之外还有其他用途。(有什么真正的应用程序使用Guid的例子吗?)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。