我应该在我的SQL Server数据库中使用int32或int64作为主键吗?

时间:2013-02-02 12:48:49

标签: sql-server

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

int32更快吗?

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

1 个答案:

答案 0 :(得分:24)

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

只需几个快速计算:

  • 如果您从1开始使用INT IDENTITY,而每秒插入一行,则在点击2之前需要 66。5年十亿限制....

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

MSDN Books Online

中详细了解它(包括所有选项)