21.1.7.1 NDB 群集中不遵守 SQL 语法

某些与某些 MySQL 功能有关的 SQL 语句在与NDBtable 一起使用时会产生错误,如下 table 所示:

但是,您可以在NDB个 table 的VARCHAR列上创建索引。

这是因为主键的更新是通过删除旧行(包含旧主键)加上插入新行(带有新主键)来实现的。这对于NDB内核是不可见的,NDB内核将这两行视为相同,因此无法知道应将此更新级联。

此问题已在 NDB 7.5.6 中修复。 (缺陷#82989,错误#24666177)

有关更多信息,请参见第 13.1.18.5 节“外键约束”第 1.8.3.2 节“外键约束”

要变通解决此问题,命名二进制日志文件或设置任何--basedir--log-bin--log-bin-index选项时,请仅使用 Latin-1 字符。

可以覆盖此限制,但是在生产设置中不支持这样做。有关详细信息,请参见用户定义的分区和 NDB 存储引擎(NDB 群集)

默认分区方案. 默认情况下,所有 NDB 群集 table 都以KEY分区,并使用 table 的主键作为分区键。如果未为该 table 显式设置主键,则使用NDB存储引擎自动创建的“隐藏”主键。有关这些和相关问题的其他讨论,请参见第 22.2.5 节“密钥分区”

不允许会导致用户分区的NDBCLUSTERtable 不满足以下两个要求中的一个或两个的CREATE TABLEALTER TABLE语句是不允许的,并且失败并显示错误:

exception. 如果使用空列列 table(即使用PARTITION BY [LINEAR] KEY())创建了用户分区的NDBCLUSTERtable,则不需要显式主键。

NDBCLUSTERtable 的最大分区数. 采用用户定义的分区时,可以为NDBCLUSTERtable 定义的最大分区数是每个节点组 8. (有关 NDB 群集节点组的更多信息,请参见第 21.1.2 节“ NDB 群集节点,节点组,副本和分区”

不支持 DROP PARTITION. 无法使用ALTER TABLE ... DROP PARTITIONNDBtable 中删除分区。 NDBtable 支持对ALTER TABLEADD PARTITIONREORGANIZE PARTITIONCOALESCE PARTITION的其他分区扩展,但是使用复制功能,因此未进行优化。参见第 22.3.1 节“ManagementRANGE 和 LIST 分区”第 13.1.8 节“ ALTER TABLE 语句”

NDBtable 最多可包含 3 JSON列。

NDB API 没有使用JSON数据的特殊规定,它仅将其视为BLOB数据。将数据处理为JSON必须由应用程序执行。

有关这些 table 的更多信息,请参见第 21.5.14 节,“ ndbinfo:NDB 群集信息数据库”

首页