21.1.7.2 NDB 群集的限制和与标准 MySQL 限制的区别

在本节中,我们列出了在 NDB Cluster 中发现的限制,这些限制与标准 MySQL 中发现的限制不同或没有。

内存使用和恢复. 将数据插入到NDBtable 中时所消耗的内存在删除后不会自动恢复,与其他存储引擎一样。相反,以下规则适用:

  • NDBtable 上的DELETE语句使以前由已删除的行使用的内存仅可通过同一 table 上的插入来重复使用。但是,可以通过执行OPTIMIZE TABLE使此内存可用于一般重用。

群集的滚动重启也会释放已删除行使用的所有内存。参见第 21.5.5 节“执行 NDB 群集的滚动重启”

Note

回想一下TRUNCATE TABLE删除并重新创建 table。参见第 13.1.34 节“ TRUNCATE TABLE 语句”

  • 由群集的配置施加的限制. 存在许多可配置的硬性限制,但是群集中的可用主内存设置了限制。请参阅第 21.3.3 节“ NDB 群集配置文件”中的配置参数的完整列 table。大多数配置参数都可以在线升级。这些硬限制包括:

  • 数据库内存大小和索引内存大小(分别为DataMemoryIndexMemory)。

DataMemory被分配为 32KB 页面。当使用每个DataMemory页时,会将其分配给特定的 table;一旦分配,就无法释放该内存,除非删除 table。

有关更多信息,请参见第 21.3.3.6 节,“定义 NDB 群集数据节点”

Note

批量加载TRUNCATE TABLEALTER TABLE作为特殊情况通过运行多个事务来处理,因此不受此限制。

  • 与 table 和索引有关的不同限制。例如,群集中的最大排序索引数由MaxNoOfOrderedIndexes确定,每个 table 的最大排序索引数为 16.

  • 节点和数据对象的最大值. 以下限制适用于群集节点和元数据对象的数量:

  • 数据节点的最大数量为 48.

数据节点的节点 ID 必须在 1 到 48 之间(包括 1 和 48)。 (Management 和 API 节点可以使用范围在 1 到 255 之间(包括 1 和 255)的节点 ID。)

  • NDB 群集中的最大节点总数为 255.此数目包括所有 SQL 节点(MySQL 服务器),API 节点(访问除 MySQL 服务器之外的群集的应用程序),数据节点和 Management 服务器。

  • 当前版本的 NDB Cluster 中的元数据对象的最大数量为 20320.此限制是硬编码的。

有关更多信息,请参见NDB Cluster 8.0 中解决的以前的 NDB Cluster 问题