Documentation Home
MySQL 8.0 参考手册  / 第 23 章 MySQL NDB Cluster 8.0  / 23.2 NDB Cluster 概述  / 23.2.7 NDB Cluster 的已知限制  /  21.2.7.6 NDB Cluster 中不支持或缺失的功能

21.2.7.6 NDB Cluster 中不支持或缺失的功能

表不支持其他存储引擎支持的许多功能NDB。尝试在 NDB Cluster 中使用这些功能中的任何一个本身都不会导致错误;但是,在希望支持或强制执行这些功能的应用程序中可能会出现错误。引用此类功能的语句,即使被 有效地忽略 NDB,也必须在句法上和其他方面有效。

  • 索引前缀。  表不支持索引前缀 NDB。如果前缀用作语句中索引规范的一部分,例如 CREATE TABLE, ALTER TABLECREATE INDEX,则前缀不是由NDB.

    包含索引前缀并创建或修改NDB表的语句必须在语法上仍然有效。例如,下面的语句总是失败,错误 1089 Incorrect prefix key;使用的键部分不是字符串,使用的长度比键部分长,或者存储引擎不支持唯一前缀键,无论存储引擎如何:

    CREATE TABLE t1 (
        c1 INT NOT NULL,
        c2 VARCHAR(100),
        INDEX i1 (c2(500))
    );

    发生这种情况是由于 SQL 语法规则,即任何索引都不能具有大于自身的前缀。

  • 保存点和回滚。  保存点和保存点的回滚被忽略,如 MyISAM.

  • 提交的持久性。  磁盘上没有持久提交。提交被复制,但不能保证日志在提交时刷新到磁盘。

  • 复制。  不支持基于语句的复制。在设置集群复制时使用 --binlog-format=ROW(or )。--binlog-format=MIXED有关更多信息,请参阅 第 21.7 节,“NDB Cluster 复制”

    使用全局事务标识符 (GTID) 的复制与 NDB Cluster 不兼容,并且在 NDB Cluster 7.5 或 NDB Cluster 7.6 中不受支持。使用存储引擎时不要启用 GTID NDB,因为这很可能导致问题,包括 NDB Cluster Replication 失败。

    NDB Cluster 不支持半同步复制。

    在集群之间进行复制时,可以在不同集群中的 SQL 节点之间使用 IPv6 地址,但给定集群中的所有连接都必须使用 IPv4 寻址。有关更多信息,请参阅 NDB Cluster 复制和 IPv6

  • 生成的列。 NDB存储引擎不支持虚拟生成列的索引 。

    与其他存储引擎一样,您可以在存储的生成列上创建索引,但您应该记住, NDB用于 DataMemory生成列的存储以及 IndexMemory索引。有关示例, 请参阅 NDB Cluster 中的 JSON 列和间接索引。

    NDB Cluster 将存储的生成列中的更改写入二进制日志,但不会记录对虚拟列所做的更改。这不应该影响 NDB Cluster 复制或NDB与其他 MySQL 存储引擎之间的复制。

笔记

有关. _ _NDB