加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 大表的最佳主键格式

发布时间:2020-12-15 19:36:54 所属栏目:百科 来源:网络整理
导读:我正在开发一个具有一些潜在大数据表的asp.net应用程序.我想知道定义主键的最佳方法是什么.我知道之前有人问过,但由于这是针对特定情况的,我认为这个问题是有效的. 我在SQL Server 2008数据库上使用Entity Framework 4. 考虑以下因素,定义主键有哪些可能性:
我正在开发一个具有一些潜在大数据表的asp.net应用程序.我想知道定义主键的最佳方法是什么.我知道之前有人问过,但由于这是针对特定情况的,我认为这个问题是有效的.

我在SQL Server 2008数据库上使用Entity Framework 4.

考虑以下因素,定义主键有哪些可能性:

>随着时间的推移,记录数量有可能超过32位边界,因此无法实现自动增量整数.
>不可能在表中的其他列的组合上定义主键.
>出于数据同步的原因,应用程序生成的id优先于数据库生成的id.此外,在EF中,它意味着额外往返数据库以检索新生成的id.
>对于插入性能,最好使用顺序键.
>我认为(顺序)guid的空间要求是一个缺点.
>对于字符串id,最好不区分大小写.

到目前为止,我自己想出的是一个自定义算法,它生成一个日期时间部分和一个随机部分,转换为十六进制字符串表示.这让我的字符串略短于guid.我仍然可以将它转换为base64,但这将违反项目nr 6.

谢谢你的建议.

解决方法

您可以考虑将密钥存储为 BIGINT(8字节整数).

BIGINT与INT完全一样,可以以相同的方式在自动递增标识列中使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读