Documentation Home
MySQL 8.0 参考手册  / 第 23 章 MySQL NDB Cluster 8.0  / 23.2 NDB Cluster 概述  / 23.2.7 NDB Cluster 的已知限制  /  18.2.7.5 与 NDB Cluster 中的数据库对象关联的限制

18.2.7.5 与 NDB Cluster 中的数据库对象关联的限制

某些数据库对象(例如表和索引)在使用 NDBCLUSTER存储引擎时有不同的限制:

  • 数据库和表名称。  使用NDB存储引擎时,数据库名称和表名称的最大允许长度均为 63 个字符。

    在 NDB 7.3.8 及更高版本中,使用长于此限制的数据库名称或表名称的语句将失败并出现相应的错误。(漏洞 #19550973)

  • 数据库对象的数量。 单个 NDB Cluster 中所有 数据库对象(包括数据库、表和索引) 的最大数量限制为 20320。NDB

  • 每个表的属性。  可以属于给定表的属性(即列和索引)的最大数量是 512。

  • 每个键的属性。  每个键的最大属性数为 32。

  • 行大小。  任何一行的最大允许大小为 14000 字节。

    每个BLOBTEXT列为此总数贡献 256 + 8 = 264 个字节;有关这些类型的更多信息, 请参阅 字符串类型存储要求。

    此外,NDB表的固定宽度列的最大偏移量为 8188 字节;尝试创建违反此限制的表失败,并出现 NDB 错误 851 Maximum offset for fixed-size columns exceeded。对于基于内存的列,您可以通过使用可变宽度的列类型来解决此限制,例如VARCHAR或将列定义为COLUMN_FORMAT=DYNAMIC;这不适用于存储在磁盘上的列。对于基于磁盘的列,您可以通过重新排序表的一个或多个基于磁盘的列来实现这一点,这样除了最后定义的基于磁盘的列之外的所有列的组合宽度CREATE TABLE用于创建表的语句不超过 8188 字节,减去对某些数据类型(例如 CHARor )执行的任何可能的舍入VARCHAR;否则,有必要对一个或多个有问题的列使用基于内存的存储。

  • 每个表的 BIT 列存储。 BIT给定表中使用的所有列 的最大组合宽度为 NDB4096。

  • 固定列存储。  NDB Cluster 支持列中每个数据片段最大 16 GB FIXED