15

在 SQL Server 中创建新数据库时,我应该使用 int32 还是 int64 的主键?

int32 更快吗?

我认为我不想使用 int32 的原因是:int32 数据类型的上限不会将特定表上的总事务限制为 2,147,483,647?我无意在其中存储那么多数据,但如果我经常需要创建新记录然后删除其他过时的记录怎么办?以后有很多交易,我不会用完钥匙吗?是否已经有一些方法可以解决这个问题?或者我应该只使用长数据类型。

4

1 回答 1

32

使用类型INT(int32),从 1 开始,您可以获得超过 20 亿行可能的行——这对于绝大多数情况来说应该绰绰有余。使用BIGINT(int64),你得到大约9 quintillion(9 有 18 个零 - 9'223'0000 亿) - 对你来说足够了吗?

只需几个快速计算:

  • 如果您使用INT IDENTITY从 1 开始,并且每秒插入一行,则需要66.5 年才能达到 20 亿的限制....

  • 如果您使用BIGINT IDENTITY从 1 开始的 a,并且每秒插入 1000 行,那么在达到 9.22 quintillion 限制之前,您需要令人难以置信的2.92 亿年......

在MSDN 联机丛书中阅读有关它的更多信息(包括所有选项)。

于 2013-02-02T13:34:23.150 回答