After you enable a given innodb_file_format
, this change applies
only to newly created tables rather than existing ones. 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 storage engine 1.1 for MySQL 5.5, generated on 2010-04-13 (revision: 19994) .