我在数据库中有几个表,其中自动增量ID字段设置为整数值。记录将每秒添加到这些表中。当我用完Integer值时会发生什么?这会导致问题吗?关于如何处理快速增长的表的自动增量值的任何建议?
答案 0 :(得分:2)
类型为INT
,从1开始,您可以获得超过20亿的行 - 这对于绝大多数情况来说应该足够了。使用BIGINT
,你可以得到大约 922千兆(922,15个零 - 922'000亿) - 足够你?
如果您从1开始使用INT IDENTITY
,并且每秒插入一行,则在达到20亿限制之前需要 66。5年 ....
如果您从1开始使用BIGINT IDENTITY
,并且每秒插入一千行,那么在达到922千万亿次限制之前,您需要一个令人难以置信的 2.92亿年。 ..
答案 1 :(得分:1)
那是很多行。来自the doc:
整数(整数)数据从-2 ^ 31(-2,147,483,648)到2 ^ 31 - 1(2,147,483,647)。存储大小为4个字节。 SQL的代号为int的同义词 是整数。
您是否考虑过using GUIDs as primary keys?