XtraDB/InnoDB File Format
Currently, XtraDB/InnoDB can store files in two formats, Antelope and Barracuda. The innodb_file_format server system variable determines the file format. By default it is set to Antelope. The default between MariaDB/MySQL 5.5.0 and 5.5.6 was Barracuda, but this could cause replication problems in certain cases when upgrading, so the default format since MariaDB/MySQL 5.5.7 has reverted back to Antelope.
The system tablespace uses the Antelope file format, and it cannot be changed. For this reason, in order to use Barracuda for user tables, it is necessary to set the innodb_file_per_table variable.
Each tablespace is tagged with the id of the most recent file format used by one of its tables. All versions of XtraDB/InnoDB can read tables that use an older file format. However, it can not read from more recent formats. For this reason, each time XtraDB/InnoDB opens a table it checks the tablespace's format, and returns an error if a newer format is used.
This check can be skipped via the innodb_file_format_check variable. Beware that, is XtraDB/InnoDB tries to repair a table in an unknown format, the table will be corrupted! This happens on restart if innodb_file_format_check is disabled and the server crashed, or it was closed with fast shutdown.
To downgrade a table from the Barracuda format to Antelope, the table's
ROW_FORMAT can be set to a value supported by Antelope, via an ALTER TABLE statement. This recreates the indexes.
The Antelope format can be used to make sure that tables work on MariaDB and MySQL servers which are older than 5.5.
Antelope is the original InnoDB file format, supporting COMPACT and REDUNDANT row formats, but not dynamic or compressed row formats.
Barracuda is a newer InnoDB file format, supporting COMPACT, REDUNDANT, DYNAMIC and COMPRESSED row formats. Tables with large BLOB or TEXT columns in particular could benefit from the dynamic row format.
XtraDB/InnoDB might use new file formats, in the future. Each format will have an identifier from 0 to 25, and a name. The names have already been decided, and are animal names listed in an alphabetical order: Antelope, Barracuda, Cheetah, Dragon, Elk, Fox, Gazelle, Hornet, Impala, Jaguar, Kangaroo, Leopard, Moose, Nautilus, Ocelot, Porpoise, Quail, Rabbit, Shark, Tiger, Urchin, Viper, Whale, Xenops, Yak and Zebra.