某些数据库对象(例如表和索引)在使用
NDBCLUSTER
存储引擎时有不同的限制:
数据库和表名称。 使用
NDB
存储引擎时,数据库名称和表名称的最大允许长度均为 63 个字符。在 NDB 7.3.8 及更高版本中,使用长于此限制的数据库名称或表名称的语句将失败并出现相应的错误。(漏洞 #19550973)
数据库对象的数量。 单个 NDB Cluster 中所有 数据库对象(包括数据库、表和索引) 的最大数量限制为 20320。
NDB
每个表的属性。 可以属于给定表的属性(即列和索引)的最大数量是 512。
每个键的属性。 每个键的最大属性数为 32。
行大小。 任何一行的最大允许大小为 14000 字节。
每个
BLOB
或TEXT
列为此总数贡献 256 + 8 = 264 个字节;有关这些类型的更多信息, 请参阅 字符串类型存储要求。此外,
NDB
表的固定宽度列的最大偏移量为 8188 字节;尝试创建违反此限制的表失败,并出现 NDB 错误 851 Maximum offset for fixed-size columns exceeded。对于基于内存的列,您可以通过使用可变宽度的列类型来解决此限制,例如VARCHAR
或将列定义为COLUMN_FORMAT=DYNAMIC
;这不适用于存储在磁盘上的列。对于基于磁盘的列,您可以通过重新排序表的一个或多个基于磁盘的列来实现这一点,这样除了最后定义的基于磁盘的列之外的所有列的组合宽度CREATE TABLE
用于创建表的语句不超过 8188 字节,减去对某些数据类型(例如CHAR
or )执行的任何可能的舍入VARCHAR
;否则,有必要对一个或多个有问题的列使用基于内存的存储。每个表的 BIT 列存储。
BIT
给定表中使用的所有列 的最大组合宽度为NDB
4096。固定列存储。 NDB Cluster 支持列中每个数据片段最大 16 GB
FIXED
。