15.23 InnoDB的限制和约束

本章节介绍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表的精确统计,除了为表保留的物理空间大小。行数只是查询优化器做的一个粗略估计。

  • InnoDB内部不会对表的行数做精确统计,这是因为并发的事务在同一时刻 “看” 见的记录数可能不同。这意味着,select count() 语句只会统计对本事务可见的记录。 想了解更多关于InnoDB怎样处理select count()语句,请看章节12.20.1中关于count()的部分。

  • 对大小大于16KB的页,不支持ROW_FORMAT=COMPRESSED。

  • 使用某种特定InnoDB页大小的MySQL实例,不能使用领一个页大小不同的实例的数据文件和日志文件。

  • 要了解使用 Transportable Tablespaces 功能导入表的限制,请查阅导入表限制

  • 要了解关于online DDL的限制,请查阅章节15.12.8,“Online DDL限制”

  • 要了解关于通用表空间的限制,请查阅通用表空间

  • 要了解关于数据存储加密相关的限制,请查阅加密限制