【问题标题】:Which data type and length is most suitable for an auto increment id column in database?哪种数据类型和长度最适合数据库中的自增 id 列?
【发布时间】:2017-06-01 00:17:21
【问题描述】:

我正在开发一个网站并使用 SQL Server 作为我的数据库。我每天都有很多条目,并且 id 会自动递增。

我应该使用INT 还是BIGINT,还是有其他合适的数据类型?

【问题讨论】:

  • “很多”是多少?如果您不期望超过 2^31-1 个条目,则 INT 很好。
  • 做一点research 并做出自己的明智决定。
  • 这样看。假设您每天有 10,000 个条目,将其乘以 365,即每年有 3,650,000 个条目。将 100 乘以 100 年,即为 365,000,000。 SQL Server 的 int 最大值为 2,147,483,647。而且我怀疑您的应用程序在一百年后仍然可以运行:)

标签: asp.net sql-server database vb.net auto-increment


【解决方案1】:

对于 INT 类型,从 1 开始,您将获得超过 20 亿 个可能的行 - 这对于绝大多数情况来说应该绰绰有余。

如果您使用从 1 开始的 INT IDENTITY,并且您在每天的每一小时的每一分钟的每一秒中插入一行,那么您需要 66.5 年在你达到 20 亿上限之前......

使用BIGINT,您得到大约 922 万亿(922 有 15 个零 - 9'220'0000 亿) - 对你来说足够了吗??

如果您使用从 1 开始的 BIGINT IDENTITY,并且您每秒插入一千行,那么您需要一个令人难以置信的 2.92 亿年才能达到 922 千万亿的限制......

MSDN Books Online 中了解更多信息(包括所有选项)。

【讨论】:

    【解决方案2】:

    INT 如果您将插入少于 2,147,483,648 条记录,BIGINT 如果您将插入更多

    【讨论】:

      猜你喜欢
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2012-03-02
      • 2019-07-23
      • 2011-07-26
      • 2012-06-07
      • 2016-11-19
      相关资源
      最近更新 更多