When innodb_file_format
is set to “Barracuda” and a table is
created with ROW_FORMAT=DYNAMIC
or ROW_FORMAT=COMPRESSED
,
long column values are stored fully off-page, and the clustered
index record contains only a 20-byte pointer to the overflow page.
Whether any columns are stored off-page depends on the page size and the total size of the row. When the row is too long, InnoDB chooses the longest columns for off-page storage until the clustered index record fits on the B-tree page.
The DYNAMIC
row format maintains the efficiency of storing the
entire row in the index node if it fits (as do the COMPACT
and
REDUNDANT
formats), but this new format avoids the problem of
filling B-tree nodes with a large number of data bytes of long
columns. The DYNAMIC
format is predicated on
the idea that if a portion of a long data value is stored
off-page, it is usually most efficient to store all of the value
off-page. With DYNAMIC
format, shorter columns
are likely to remain in the B-tree node, minimizing the number of
overflow pages needed for any given row.
This is the User’s Guide for InnoDB Plugin 1.0.6 for MySQL 5.1, generated on March 4, 2010 (rev 673:680M).