存在的局限

以下列举的比较重要的,更多限制请参照官方文档

  • 不支持临时表TEMPORARY

  • 不支持在TEXTBLOB列上创建索引

  • 不支持FULLTEXT索引

  • 在宽度大于3072字节的表列上创建索引不会成功,实际仅前3072字节的内容有索引

  • 不支持前缀索引

  • 不支持SET DEFAULT

  • NDB存储引擎只支持基于LINEAR KEYKEY的自定义分区

  • 使用NDB存储引擎时不支持外键,InnoDB支持,但有限制

  • 不支持删除分区

核心概念

管理节点

管理节点:这种类型的节点的作用是管理NDB群集中的其他节点,执行诸如提供配置数据,启动和停止节点以及运行备份之类的功能。由于此节点类型管理其他节点的配置,因此应首先启动此类型的节点,然后再启动任何其他节点。使用命令ndb_mgmd启动管理节点

数据节点

这种类型的节点存储集群数据。数据节点的数量等于片段副本的数量乘以片段数量。例如,对于两个片段副本,每个片段副本都有两个片段,需要四个数据节点。一个片段副本足以存储数据,但不提供冗余。使用命令ndbd启动数据节点

SQL节点

这是访问集群数据的节点。对于NDB群集,SQL节点是使用NDBCLUSTER存储引擎的传统MySQL服务器。

节点组

多个数据节点组成一个节点组,节点组不能手动配置,由函数nodeGroups = dataNodes / Replicas决定。比如四个节点,复制为1,则有四个组。需要注意的是所有节点组必须具有相同数量的数据节点。如果要往节点组添加数据节点,则所有组都需要添加。

分区

集群会自动对使用NDBCLUSTER存储引擎的表进行分区,分区由函数partitions = dataNodes * LDMthreads,默认数据节点的LDMthreads数为1,该参数由MaxNoOfExecutionThreads控制,当值小于等于3时,LDMthreads也会被视为1。

片段副本

这是群集分区的副本。节点组中的每个节点都存储一个片段副本。有时也称为 分区副本。片段副本的数量等于每个节点组的节点数量