我们有一个名为Parts.的数据库表。每行都是系统中的一部分。此表的主键称为ID,它是标识种子,是整数数据类型。我们正在为此表添加新部件。
我的用户已经为我添加了大约1000行。我注意到他们希望ID从1000000开始一直到14230004.所以我将通过设置标识插入ON来添加新行。此外,添加的行有时会在应用程序的其他表中引用。这些行也以树视图的形式呈现在Web应用程序中。
我的问题,在我的情况下启动你的ID的主键并不是一个坏习惯,从1000000我可以从1开始。不会从1开始帮助索引表更好,因此更快的检索时间?据我所知,从这么大的整数开始ID没有真正的业务需求。我只是想知道是否应该按用户从1开始ID。
答案 0 :(得分:1)
没关系。 SQL中的int将占用与任何其他int一样多的空间。它们都使用4个字节的存储空间。索引不关心数字是什么。
但是,您将尽快浏览所有可用的ID。应该不是问题,因为ms sql int最大值为2,147,483,647(2 ^ 31-1)
答案 1 :(得分:1)
好的 - 所以从1百万而不是1开始 - 你手头有2.04而不是21.4亿行。
如果您使用从{1}开始的INT IDENTITY
,并且每隔一天,每天,每天都插入一行每秒,那么您需要 63。4年(而不是66.5)....
这对你来说够了吗?
答案 2 :(得分:1)
我的问题是,在我的情况下启动你的身份证主键并不是一个坏习惯,从1000000我可以从1开始。
通常,当你看到这样的事情时,就有了理由。
不能从1开始帮助索引表更好,因此更快的检索时间?
没有。当存储整数时,1000000不会占用1以上的空间。在给定相同数量和行分布的情况下,dbms可以找到1000000,就像它找到的那样快1,并且给出相同且无偏的索引。
我只是想知道是否应该按用户从1开始ID。
不,你不应该按用户从1开始。你应该试着找出为什么其他人,大概知道你不知道的事情,让他们从不同的号码开始。