gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:21:00 25 4
gpt4 key购买 nike

我正在开发一个具有一些潜在大数据表的 asp.net 应用程序。我想知道定义主键的最佳方法是什么。我知道之前有人问过这个问题,但由于这是针对特定情况的,所以我认为这个问题是有效的。

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

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

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

到目前为止,我自己想出了一个自定义算法,它生成一个日期时间部分和一个随机部分,转换为十六进制字符串表示形式。这给我留下了比 guid 稍短的字符串。我仍然可以将它转换为 base64,但这会违反第 6 项。

感谢您的建议。

最佳答案

您可以考虑将 key 存储为 BIGINT (8 字节整数)。

BIGINT 的工作原理与 INT 完全相同,并且可以以相同的方式在自动递增的标识列中使用。

关于c# - 大表的最佳主键格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3298776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com