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.8 for MySQL 5.1, generated on 2012-02-13 (revision: 28615) .
