Each index record in InnoDB contains a header of 6 bytes. The header
is used to link consecutive records together, and also in the row level
locking.
Records in the clustered index contain fields for all user-defined
columns. In addition, there is a 6-byte field for the transaction id
and a 7-byte field for the roll pointer.
If the user has not defined a primary key for a table, then each clustered
index record contains also a 6-byte row id field.
Each secondary index record contains also all the fields defined
for the clustered index key.
A record contains also a pointer to each field of the record.
If the total length of the fields in a record is < 128 bytes, then
the pointer is 1 byte, else 2 bytes.