在本节中,我们列出了NDB集群中与标准MySQL中不同或没有的限制。
内存使用和恢复。对象中插入数据时所消耗的内存NDB
表在删除时不会自动恢复,与其他存储引擎一样。相反,以下规则是正确的:
一个
删除
声明NDB
Table使以前被删除的行所使用的内存仅供在同一表上的插入重新使用。但是,通过执行,可以将此内存用于一般重用优化表
.滚动重新启动集群还可以释放被删除的行所使用的内存。看到21.5.5节“滚动重启NDB集群”.
一个
删除表
或截断表
操作NDB
表释放此表所使用的内存以供任何表重用NDB
同一桌或另一桌NDB
表格请注意回想一下,
截断表
删除并重新创建表。看到第13.1.34节“TRUNCATE TABLE语句”.集群配置施加的限制。存在许多可配置的硬限制,但集群中的可用主存设置了限制。中配置参数的完整列表章节21.3.3,“NDB集群配置文件”.大多数配置参数可以在线升级。这些硬性限制包括:
数据库内存大小和索引内存大小(
DataMemory
而且IndexMemory
分别)。DataMemory
分配为32KB的页面。因为每个DataMemory
页被使用时,它被分配给一个特定的表;一旦分配,这个内存就不能释放,除非删除表。看到第21.3.3.6节“定义NDB集群数据节点”,以获取更多资料。
每个事务可以执行的最大操作数是使用配置参数设置的
MaxNoOfConcurrentOperations
而且MaxNoOfLocalOperations
.请注意批量加载,
截断表
,ALTER TABLE
作为运行多个事务的特殊情况处理,因此不受此限制。与表和索引相关的不同限制。例如,集群中有序索引的最大数量由
MaxNoOfOrderedIndexes
,每个表的最大有序索引数为16。
节点和数据对象的最大值。集群节点和元数据对象的个数限制如下:
最大数据节点数为48个。
数据节点的节点ID取值范围为1 ~ 48(含48个)。(管理节点和API节点可以使用1 ~ 255的节点id,包括。)
NDB集群最大节点数为255。这个数字包括所有SQL节点(MySQL服务器)、API节点(访问集群的应用程序,而不是MySQL服务器)、数据节点和管理服务器。
NDB集群当前版本元数据对象的最大数量为20320个。这个限制是硬编码的。
看到以前的NDB集群问题已在NDB集群8.0中解决,以获取更多资料。