2011-08-04 27 views
0

我创建了一个列id为int数据类型的表。但是,我意识到int类型可能无法保存我可能放在表格中的一些值。我想知道,如果我将该列定义为bigint,是否会占用“空间”,或者是否在数据库中使用空间,甚至在将值放入列之前?我正在使用SQL Server 2008 R2。谢谢。SQL服务器数据类型int Vs Big int

回答

5

int总是使用4个字节,bigint总是使用8个字节。存储的实际值不会影响字段的大小。

+0

非常感谢。再一个查询。如果我在bigint列上有int“124”,它会使用3个字符乘8个字节的空间吗? – Jim

+0

这不完全正确......如果您实施数据压缩,如果不是所有字节都是必需的,它将能够减少使用的空间。值“124”可以适合压缩下的“TINYINT”所需的空间。但是,请小心不要对字符进行计数,并假设它与字节数直接相关。 –

1

每次输入任何数字,即使是1,它都会使用完整的8个字节。所以额外的存储开销是4bytes *行数。如果你担心你的数字会高于2,147,483,647,那么你应该使用bigint。

+0

@Spencer ......非常感谢。抱歉,我以前没有看到答案......现在有道理。克里斯感谢。 – Jim