为了账号安全,请及时绑定邮箱和手机立即绑定

使用GUID作为主键的最佳实践是什么,特别是在性能方面?

使用GUID作为主键的最佳实践是什么,特别是在性能方面?

FFIVE 2019-07-04 10:23:39
使用GUID作为主键的最佳实践是什么,特别是在性能方面?我有一个应用程序,它在几乎所有的表中都使用GUID作为主键,并且我读到了使用GUID作为主键时的性能问题。老实说,我还没有看到任何问题,但我即将启动一个新的应用程序,我仍然希望使用GUID作为主键,但我正在考虑使用一个复合主键(GUID,可能还有另一个字段)。我使用GUID是因为当您有不同的环境(如“生产”、“测试”和“开发”数据库)以及在数据库之间迁移数据时,它们是很好而且易于管理的。我将使用EntityFramework4.3,在将GUID插入数据库之前,我希望在应用程序代码中分配GUID。(也就是说,我不想让SQL生成GUID)。创建基于GUID的主键的最佳实践是什么,以避免与此方法相关的假定性能命中?
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我目前正在用EF Core开发一个Web应用程序,下面是我使用的模式:

我所有的类(表)和一个intPK和FK。我还得到了一个带有Guid类型(由c#构造函数生成)的列,其中包含一个非聚集索引。

EF中的所有表连接都是通过int键管理的,而来自外部(控制器)的所有访问都是用Guid完成的。

该解决方案允许在URL上不显示int键,但使模型保持整洁和快速。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 1230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信