Although you may have enabled a given
innodb_file_format
at a particular time, unless
you create a new table, the database file format is unchanged.
If you do create a new table, the tablespace containing the table
is tagged with the “earliest” or “simplest”
file format that is required for the table’s features. For example,
if you enable file format “Barracuda”, and create a new table that
is not compressed and does not use ROW_FORMAT=DYNAMIC
,
the new tablespace that contains the table is tagged as using file
format “Antelope”.
It is easy to identify the file format used by a given
tablespace or table. The table uses the “Barracuda” format if
the Row_format
reported by
SHOW CREATE TABLE
or
INFORMATION_SCHEMA.TABLES
is
one of 'Compressed'
or
'Dynamic'
. (Please note that the
Row_format
is a separate column, and ignore the
contents of the Create_options
column, which
may contain the string ROW_FORMAT
.) If the
table in a tablespace uses neither of those features, the file
uses the format supported by prior releases of InnoDB, now
called file format “Antelope”. Then, the
Row_format
is one of
'Redundant'
or
'Compact'
.
The file format identifier is written as part of the
tablespace flags (a 32-bit number) in the *.ibd
file in the 4 bytes starting at position 54 of the file, most
significant byte first. (The first byte of the file is byte
zero.) On some systems, you can display these bytes in
hexadecimal with the command od -t x1 -j 54 -N 4
. If all bytes
are zero, the tablespace uses the “Antelope” file format (which
is the format used by the standard built-in InnoDB in MySQL up to version 5.1).
Otherwise, the least significant bit should be set in the
tablespace flags, and the file format identifier is written in the
bits 5 through 11. (Divide the tablespace flags by 32 and take
the remainder after dividing the integer part of the result by
128.)
tablename
.ibd
This is the User’s Guide for InnoDB Plugin 1.0.6 for MySQL 5.1, generated on March 4, 2010 (rev 673:680M).