NDB群集的限制和与标准MySQL限制的区别
在本节中,我们列出了在NDB Cluster中发现的限制,这些限制与标准MySQL中发现的限制不同。
内存使用和恢复。NDB
与其他存储引擎一样,将数据插入表中时消耗的内存在删除后不会自动恢复。相反,以下规则适用:
在
DELETE
表上执行一条语句NDB
可使以前被删除的行使用的内存仅可用于同一张表上的插入而重新使用。但是,可以通过执行使此内存可用于一般重用OPTIMIZE TABLE
。群集的滚动重启也会释放已删除行使用的所有内存。请参见“执行NDB群集的滚动重启”。
甲
DROP TABLE
或TRUNCATE TABLE
上的操作NDB
表释放的是使用由该表用于通过任何重新使用存储器NDB
或者由同一个表或由另一个表,NDB
表中。注意
记得
TRUNCATE TABLE
删除并重新创建表。请参见“ TRUNCATE TABLE语句”。群集配置施加的限制。存在许多可配置的硬性限制,但是群集中可用的主内存设置了限制。请参见“ NDB群集配置文件”中的配置参数的完整列表。大多数配置参数都可以在线升级。这些硬限制包括:
数据库内存大小和索引内存大小(分别为
DataMemory
和IndexMemory
)。DataMemory
被分配为32KB页面。在使用每个DataMemory
页面时,会将其分配给一个特定的表。一旦分配,就无法释放该内存,除非删除表。有关更多信息,请参见“定义NDB群集数据节点”。
使用配置参数
MaxNoOfConcurrentOperations
和可以设置每个事务可以执行的最大操作数MaxNoOfLocalOperations
。注意
批量加载
TRUNCATE TABLE
和ALTER TABLE
是作为特殊情况通过运行多个事务处理的,因此不受此限制。- 与表和索引有关的不同限制。例如,集群中
MaxNoOfOrderedIndexes
最大排序索引数由决定,每个表的最大排序索引数为16。
节点和数据对象的最大值。以下限制适用于群集节点和元数据对象的数量:
从NDB 8.0.18开始,最大数据节点数为145。(以前是48。)
数据节点的节点ID必须在1到144(含)范围内。(在NDB 8.0.17和更早版本中,此值是1到48(含1和48)。
管理和API节点可以使用1到255(含)范围内的节点ID。
- NDB群集中的最大节点总数为255。此数目包括所有SQL节点(MySQL服务器),API节点(访问除MySQL服务器之外的群集的应用程序),数据节点和管理服务器。
- 当前版本的NDB Cluster中的元数据对象的最大数量为20320。此限制是硬编码的。
有关更多信息,请参见“ NDB Cluster 8.0中解决的先前的NDB Cluster问题”。