InnoDB表的一些限制
1.表最多只有有1000列.
2.单列索引长度小767字节,适用前缀索引。多列组合索引长度3072字节
3.列的大小(除小可变列 varchar、varbianry,text,blob)小页于50%页大小.
LONG BLOB、LONGTEXT限制于4GB以内,总共行长度包含BLOB与TEXT小于4G
4.行大小限制于65335字节(不包含BLOB与TEXT).
5.默认数据页16K
6.logfile限制于4G以内.
对InnoDB表的限制
· 一个表不能包含超过1000列。
· 内部最大键长度是3500字节,但MySQL自己限制这个到1024字节。
· 除了VARCHAR, BLOB和TEXT列,最大行长度稍微小于数据库页的一半。即,最大行长度大约8000字节。LONGBLOB和LONGTEXT列必须小于4GB, 总的行长度,页包括BLOB和TEXT列,必须小于4GB。InnoDB在行中存储VARCHAR,BLOB或TEXT列的前768字节,余下的存储的分散的页面中。
· 虽然InnoDB内部地支持行尺寸大于65535,你不能定义一个包含VARCHAR列的,合并尺寸大于65535的行。
· mysql> CREATE TABLE t (a VARCHAR(8000), b VARCHAR(10000),
· -> c VARCHAR(10000), d VARCHAR(10000), e VARCHAR(10000),
· -> f VARCHAR(10000), g VARCHAR(10000));
· ERROR 1118 (42000): Row size too large. The maximum row size for the
· used table type, not counting BLOBs, is 65535. You have to change some
· columns to TEXT or BLOBs
· 在一些更老的操作系统上,数据文件必须小于2GB。
· InnoDB日志文件的合并尺寸必须小于4GB。
· 最小的表空间尺寸是10MB。最大的表空间尺寸是4,000,000,000个数据库页(64TB)。这也是一个表的最大尺寸。
· InnoDB表不支持FULLTEXT索引。