This section describes restrictions and limitations of the
InnoDB storage engine.
You cannot create a table with a column name that matches the name of an internal
DB_ROLL_PTR. This restriction applies to use of the names in any lettercase.
mysql> CREATE TABLE t1 (c1 INT, db_row_id INT) ENGINE=INNODB; ERROR 1166 (42000): Incorrect column name 'db_row_id'
SHOW TABLE STATUSdoes not provide accurate statistics for
InnoDBtables except for the physical size reserved by the table. The row count is only a rough estimate used in SQL optimization.
InnoDBdoes not keep an internal count of rows in a table because concurrent transactions might “see” different numbers of rows at the same time. Consequently,
SELECT COUNT(*)statements only count rows visible to the current transaction.
For information about how
SELECT COUNT(*)statements, refer to the
COUNT()description in Section 12.19.1, “Aggregate (GROUP BY) Function Descriptions”.
There is no guarantee that
InnoDBfunctions normally with a page size greater than 16KB. Problems compiling or running
InnoDBmay occur. In particular,
ROW_FORMAT=COMPRESSEDin the Barracuda file format assumes that the page size is at most 16KB and uses 14-bit pointers.
A MySQL instance using a particular
InnoDBpage size (
innodb_page_size) cannot use data files or log files from an instance that uses a different page size.
InnoDBdoes not support indexes on spatial data type columns.
For limitations associated with importing tables using the Transportable Tablespaces feature, see Table Import Limitations.
For limitations associated with online DDL, see Section 14.13.6, “Online DDL Limitations”.