虽然已经有记录表明,NULL在postgresql元组头中仅占用1位,但是在可空列的INDEX中,NULL占用多少空间(不是元组,而是索引)?它是否与元组中的1位相同,还是等于完整的列数据类型大小(例如:integer = 4个字节)?
问题的背景是我有一个postgresql表格,其中有3个引用列(例如:foo_id、bar_id和baz_id),对于任何行,只有一个列会有值(另外2个列将为NULL)。然而,我需要对所有3个列建立索引。假设每个列都是整数(在postgresql中为4个字节),每一行应该占用4个字节(对于非空列)加上2个位(对于2个空列)。但是,如果我要为所有3个列添加索引,则这3个索引的存储空间将为12个字节(如果索引占用了空值的全部4个字节),或者与元组本身相同的4个字节+2个位。
问题的背景是我有一个postgresql表格,其中有3个引用列(例如:foo_id、bar_id和baz_id),对于任何行,只有一个列会有值(另外2个列将为NULL)。然而,我需要对所有3个列建立索引。假设每个列都是整数(在postgresql中为4个字节),每一行应该占用4个字节(对于非空列)加上2个位(对于2个空列)。但是,如果我要为所有3个列添加索引,则这3个索引的存储空间将为12个字节(如果索引占用了空值的全部4个字节),或者与元组本身相同的4个字节+2个位。