Compact行记录的格式
-变长字段长度列表:如果列的长度小于255字节,用1字节表示;如果大于255个字节,用2字节表示
-NULL标志位:表明该行数据是否有NULL值。占一个字节。(错误)
-记录头信息:固定占用5字节,每位的含义见下表:
这里修正原文关于NULL标志位长度的描述:
NULL标志位长度:celling(Column max index that can be null/8)
记录头的可变长度部分包含用于指示NULL列的位向量。 如果索引中可以为NULL的列数为N,则位向量占用CEILING(N / 8)个字节。 (例如,如果有9到16列可以为NULL,则位向量使用两个字节。)NULL列不占用此向量中的位以外的空间。 标题的可变长度部分还包含可变长度列的长度。 每个长度需要一个或两个字节,具体取决于列的最大长度。 如果索引中的所有列都是非NULL并且具有固定长度,则记录头没有可变长度部分
文档地址