在SQL Server中创建新数据库时,我应该使用主键作为int32还是int64?
int32更快吗?
我认为我不想使用int32的原因是:int32数据类型的上限不会将特定表上的总事务限制为2,147,483,647吗?我无意在那里存储那么多数据,但如果我经常需要创建新记录然后删除其他过时的数据呢?很多交易以后,我不会用完钥匙吗?是否有一些方法可以解决这个问题?或者我应该只使用长数据类型。
答案 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限制之前....