Early versions of InnoDB used an unnamed file format (now called
Antelope) for database files.
With that file format, tables are defined with
ROW_FORMAT=REDUNDANT. InnoDB stores up to the
first 768 bytes of variable-length columns (such as
VARCHAR) in the
index record within the B-tree node, with the remainder stored on
the overflow pages.
To preserve compatibility with those prior versions, tables
created with the newest InnoDB default to the
COMPACT row format. See
Section 14.8.3, “DYNAMIC and COMPRESSED Row Formats” for information about
COMPRESSED row formats.
With the Antelope file format, 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 short
BLOBs, but may cause
B-tree nodes to fill with data rather than key values, reducing
their efficiency. Tables with many
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.