2

例如,我有以下员工表:

emp_id - 名称 - 地址

1234----亚历克斯----(空)

第1235章

请注意,我没有在地址栏中添加任何内容。

即使我没有添加任何内容,地址列是否仍会占用磁盘空间?

我问这个问题是因为我计划删除特定表中的一些列。该表有大约五十 (50) 列,但只使用了十五 (15) 列。我需要确定其他三十五 (35) 列(未使用)是否仍在占用磁盘空间,即使您没有在其上放置任何内容。

非常感谢您的回复。

4

2 回答 2

1

来自概念指南中关于表存储的部分

“如果空值位于具有数据值的列之间,则空值将存储在数据库中。在这些情况下,它们需要 1 个字节来存储列的长度(零)。一行中的尾随空值不需要存储......”

因此,在您在问题中发布的确切情况下,答案将是该address列不占用任何空间。但其他带有空值的列可能。

于 2013-02-07T06:38:44.623 回答
0

根据您使用的数据库,地址列将占用空间。您可以回收已使用的空间,但如果是 Oracle,未使用的空间是“从不”使用的空间。您可以使用不同的技术来回收空间,其中之一就像 alter table MY_TABLE deallocate unused keep xx;更改表以释放未使用的空间是回收空间最常用的方法

于 2013-02-07T04:56:23.427 回答