InnoDB
本节描述存储引擎
的约束和限制
。
您不能使用与内部
InnoDB
列名称(包括DB_ROW_ID
、DB_TRX_ID
和 )相匹配的列名称创建表DB_ROLL_PTR
。此限制适用于以任何字母大小写形式使用名称。mysql> CREATE TABLE t1 (c1 INT, db_row_id INT) ENGINE=INNODB; ERROR 1166 (42000): Incorrect column name 'db_row_id'
SHOW TABLE STATUS
InnoDB
除了表保留的物理大小外,不提供表的准确统计信息。行数只是 SQL 优化中使用的粗略估计。InnoDB
不保留表中行的内部计数,因为并发事务可能同时 “看到”不同数量的行。因此,SELECT COUNT(*)
语句只对当前事务可见的行进行计数。有关如何
InnoDB
处理SELECT COUNT(*)
语句的信息,请参阅 第COUNT()
12.19.1 节,“聚合函数说明”中的说明。不能保证
InnoDB
页面大小大于 16KB 时可以正常运行。编译或运行InnoDB
可能会出现问题。特别是,ROW_FORMAT=COMPRESSED
在 Barracuda文件格式中假定页面大小最大为 16KB 并使用 14 位指针。使用特定
InnoDB
页面大小 (innodb_page_size
) 的 MySQL 实例不能使用来自使用不同页面大小的实例的数据文件或日志文件。InnoDB
不支持空间数据类型列的索引。有关使用可 传输表空间功能导入表的相关限制,请参阅 表导入限制。
有关与在线 DDL 相关的限制,请参阅 第 14.13.6 节,“在线 DDL 限制”。