好吧,我在数据库主题方面的经验有点少,但考虑一下您的表中有一个名为 id
的字段的情况,并且它是可索引/增量播种的。
所以也许您有第 1-60 行,所以 id 在 1-60 之间,增量为“61”。
如果删除第 30-50 行,增量不应该回到“31”吗?填上那30-50个id,然后又回到61?
我的问题:::为什么 MSSQL/SQL Server 不这样做?丢失的 30-50 之间未使用的 ID 将永远不会再次使用。
此外,如果您在 id 500-600 之间手动插入一些行怎么办?当增量达到“500”时,会不会出现“duplicate key”错误? ???
所以如果你有某种表,每个用户都在不断地改变——删除、插入、删除、插入,你最好希望 id
是 bigint,因为它会很快进入1,000,000+ 区域,如果您有足够的用户。
最佳答案
如果该字段用作唯一 ID,您不应该希望它重复使用一个值。删除后,不应重复使用值。
如果该字段是自动生成的,您不应该在其中手动设置值,除非在特殊情况下(如复制)。
是的;您需要确保选择足够大的数据类型。不要搞类似千年虫的噱头并不必要地限制您的应用。
关于sql-server - 删除记录时,索引种子仍然很高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672291/