NDB群集中不支持或缺少的功能
引用这些功能的语句,即使被有效地忽略了NDB
,也必须在语法上有效。
索引前缀。
NDB
表不支持索引前缀。如果前缀被用作诸如语句索引规范的一部分CREATE TABLE
,ALTER TABLE
或者CREATE INDEX
,不被创建的前缀NDB
。包含索引前缀以及创建或修改
NDB
表的语句在语法上仍然必须有效。例如,以下语句始终失败,并显示错误1089 不正确的前缀键;使用的密钥部分不是字符串,使用的长度比密钥部分长,或者存储引擎不支持唯一的前缀密钥,而与存储引擎无关:CREATE TABLE t1 ( c1 INT NOT NULL, c2 VARCHAR(100),INDEX i1 (c2(500)) );这是由于SQL语法规则而发生的,即没有索引的前缀可以大于自身。
- 保存点和回滚。和中一样,将忽略保存点和回滚到保存点
MyISAM
。 - 提交的持久性。磁盘上没有持久提交。提交已复制,但不能保证在提交时将日志刷新到磁盘。
复制。不支持基于语句的复制。设置群集复制时使用
--binlog-format=ROW
(或--binlog-format=MIXED
)。有关更多信息,请参见“ NDB群集复制”。使用全局事务标识符(GTID)的复制与NDB Cluster不兼容,并且在NDB Cluster 8.0中不受支持。使用
NDB
存储引擎时,请勿启用GTID ,因为这很可能会引起问题,甚至导致NDB群集复制失败。NDB群集中不支持半同步复制。
生成的列。该
NDB
存储引擎不支持虚拟生成列的索引。与其他存储引擎,你可以创建一个存储生成列的索引,但是你应该记住,
NDB
使用DataMemory
的生成列的存储以及IndexMemory
用于索引。有关示例,请参见 NDB Cluster中的JSON列和间接索引。NDB群集将存储的生成列中的更改写入二进制日志,但不记录对虚拟列所做的更改。这不应影响NDB群集复制或
NDB
其他MySQL存储引擎之间的复制。
注意有关与中有关事务处理限制的更多信息,请参见“ NDB群集中与事务处理有关的限制”
NDB
。