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 letter case.
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.17.1, “Aggregate (GROUP BY) Function Descriptions”.
Changing the page size is not a supported operation and there is no guarantee that
InnoDBfunctions normally with a page size other 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 version of
InnoDBbuilt for one page size cannot use data files or log files from a version built for a different page size. This limitation could affect restore or downgrade operations using data from MySQL 5.6, which does support page sizes other than 16KB.
InnoDBdoes not support
InnoDBdoes not support indexes on spatial data type columns.
For limitations associated with fast index creation, see Section 14.16.6, “Limitations of Fast Index Creation”.