InnoDB表中的记录有如下特征:
· InnoDB中每个索引记录包含一个6字节的头。这个头被用来将连续的记录连接在一起,并且也用在row-level锁定中。
· 集束索引中的记录包含对所有自定义列的域。此外,有一个6字节的域给事务ID以及一个7字节的域给滚动指针。
· 如果没有为一个表定义初级键,每个集束索引记录也包含一个6字节的行ID域。
· 每个第二索引记录也包含为集束索引键定义的所有域。
· 一个记录也包含一个指向该记录每一个域的指针,如果在一个记录中域的总长度小于128字节,该指针时一个字节;否则就是2字节。这些指针的阵列被称为记录目录。这些指针指向的区域被称为记录的数据部分。
· 内部地,InnoDB以固定长度格式存储固定长度字符列,比如CHAR(10)。InnoDB从VARCHAR列截短跟踪空间。注意,MySQL可以内部地把CHAR列转换为VARCHAR列。请参阅13.1.5.1节,“安静的列规格改变”。
· 一个SQL的NULL值在记录目录里保留1或2字节。此外,SQL的NULL值如果被保存在可变长度列,则在记录数据部分保留零字节。在一个固定长度列,它在记录的数据部分保留该列的固定长度。为NULL值保留固定空间背后的动机是之后该 列从NULL值到非NULL值的更新可以就地完成,且不会导致索引页的碎片。