例如,我有以下员工表:
emp_id - 名称 - 地址
1234----亚历克斯----(空)
第1235章
请注意,我没有在地址栏中添加任何内容。
即使我没有添加任何内容,地址列是否仍会占用磁盘空间?
我问这个问题是因为我计划删除特定表中的一些列。该表有大约五十 (50) 列,但只使用了十五 (15) 列。我需要确定其他三十五 (35) 列(未使用)是否仍在占用磁盘空间,即使您没有在其上放置任何内容。
非常感谢您的回复。
例如,我有以下员工表:
请注意,我没有在地址栏中添加任何内容。
即使我没有添加任何内容,地址列是否仍会占用磁盘空间?
我问这个问题是因为我计划删除特定表中的一些列。该表有大约五十 (50) 列,但只使用了十五 (15) 列。我需要确定其他三十五 (35) 列(未使用)是否仍在占用磁盘空间,即使您没有在其上放置任何内容。
非常感谢您的回复。
来自概念指南中关于表存储的部分
“如果空值位于具有数据值的列之间,则空值将存储在数据库中。在这些情况下,它们需要 1 个字节来存储列的长度(零)。一行中的尾随空值不需要存储......”
因此,在您在问题中发布的确切情况下,答案将是该address
列不占用任何空间。但其他带有空值的列可能。
根据您使用的数据库,地址列将占用空间。您可以回收已使用的空间,但如果是 Oracle,未使用的空间是“从不”使用的空间。您可以使用不同的技术来回收空间,其中之一就像
alter table MY_TABLE deallocate unused keep xx;
更改表以释放未使用的空间是回收空间最常用的方法