InnoDB tables that use the
format store up to the first 768 bytes of variable-length columns
TEXT types) in the index record
within the B-tree node, with
the remainder stored on the overflow pages.
InnoDB also encodes fixed-length fields greater
than or equal to 768 bytes in length as variable-length fields,
which can be stored off-page. For example, a
CHAR(255) column can exceed 768 bytes if the
maximum byte length of the character set is greater than 3, as it
formats, if the value of a column is 768 bytes or less, no
overflow page is needed, and some savings in I/O may result, since
the value is in the B-tree node. This works well for relatively
BLOBs, but may cause B-tree nodes to fill
with data rather than key values, reducing their efficiency.
Tables with many
BLOB columns could cause
B-tree nodes to become too full of data, and contain too few rows,
making the entire index less efficient than if the rows were
shorter or if the column values were stored off-page.
The default row format is
DYNAMIC, as defined
configuration option. See
Section 15.10.3, “DYNAMIC and COMPRESSED Row Formats” for more information.
For information about the physical row structure of tables that
row format, see Section 18.104.22.168, “The Physical Row Structure of an InnoDB Table”.