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
InnoDB
column (includingDB_ROW_ID
,DB_TRX_ID
, andDB_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 STATUS
does not provide accurate statistics forInnoDB
tables except for the physical size reserved by the table. The row count is only a rough estimate used in SQL optimization.InnoDB
does 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
InnoDB
processesSELECT COUNT(*)
statements, refer to theCOUNT()
description in Section 14.19.1, “Aggregate Function Descriptions”.ROW_FORMAT=COMPRESSED
is unsupported for page sizes greater than 16KB.A MySQL instance using a particular
InnoDB
page size (innodb_page_size
) cannot use data files or log files from an instance that uses a different page size.For limitations associated with importing tables using the Transportable Tablespaces feature, see Table Import Limitations.
For limitations associated with online DDL, see Section 17.12.8, “Online DDL Limitations”.
For limitations associated with general tablespaces, see General Tablespace Limitations.
For limitations associated with data-at-rest encryption, see Encryption Limitations.