Documentation Home
MySQL 5.6 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 31.2Mb
PDF (A4) - 31.2Mb
PDF (RPM) - 30.4Mb
EPUB - 7.7Mb
HTML Download (TGZ) - 7.5Mb
HTML Download (Zip) - 7.6Mb
HTML Download (RPM) - 6.5Mb
Eclipse Doc Plugin (TGZ) - 8.3Mb
Eclipse Doc Plugin (Zip) - 10.1Mb
Man Pages (TGZ) - 183.8Kb
Man Pages (Zip) - 295.2Kb
Info (Gzip) - 2.9Mb
Info (Zip) - 2.9Mb
Excerpts from this Manual

14.10.1 Enabling File Formats

The innodb_file_format configuration option defines the file format used when InnoDB tables are created in file_per_table tablespaces.

Antelope is the default innodb_file_format.

To preclude the use of features supported by the Barracuda file that make your database inaccessible to the built-in InnoDB in MySQL 5.1 and prior releases, set innodb_file_format to Antelope. Alternatively, you can disable innodb_file_per_table to have new tables created in the system tablespace. The system tablespace is stored in the original Antelope file format.

You can set the value of innodb_file_format on the command line when you start mysqld, or in the option file (my.cnf on Unix, my.ini on Windows). You can also change it dynamically with a SET GLOBAL statement.

mysql> SET GLOBAL innodb_file_format=Barracuda;
Query OK, 0 rows affected (0.00 sec)

Be aware that ALTER TABLE operations that recreate InnoDB tables use the current innodb_file_format setting.

Although Oracle recommends using the Barracuda format for new tables where practical, in MySQL 5.6 the default file format is Antelope, for maximum compatibility with replication configurations containing earlier MySQL releases.


User Comments
  Posted by Dylan Butler on December 9, 2016
This page has a couple of problems that should be clarified:

1. "The innodb_file_format configuration option defines the file format used when InnoDB tables are created in file_per_table tablespaces."

This is not true for MySQL 5.6. In MySQL 5.6 the default file format is Antelope and you cannot change that. Setting the innodb_file_format to Barracuda simply enables Barracuda, but the default for new tables is still Antelope. To use Barracuda, you would need to enable it, then specify a Barracuda row_format (Dynamic or Compressed) during the creation of the table.

2. "Be aware that ALTER TABLE operations that recreate InnoDB tables use the current innodb_file_format setting."

This is also not true for the same reason. Since the default in 5.6 is Antelope, the file format will not change when doing an ALTER TABLE, unless of course you specify a change to a Barracuda row_format (Dynamic or Compressed).

I have confirmed this elsewhere in the documentation and have also verified this behavior myself in MySQL 5.6.34. Starting with MySQL 5.7, the default row format is now "Dynamic" (Barracuda) and they also added a variable for changing the default (innodb_default_row_format), so in 5.7 this would be accurracte, but for 5.6 this page is incorrect.

References:
https://dev.mysql.com/doc/refman/5.6/en/innodb-file-format-identifying.html
"For example, if you enable the Barracuda file format, and create a new table that does not use the Dynamic or Compressed row format, the new tablespace that contains the table is tagged as using the Antelope file format."

https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format-antelope.html
"To preserve compatibility with prior versions of InnoDB, InnoDB tables created in MySQL 5.6 default to the COMPACT row format rather than the newer DYNAMIC row format."
Sign Up Login You must be logged in to post a comment.