许多其他存储引擎支持的特性不支持NDB
表。尝试使用NDB集群中的任何这些特性本身都不会导致错误;然而,在期望支持或实施这些特性的应用程序中可能会发生错误。引用这些特性的语句,即使被有效地忽略NDB
,必须在语法和其他方面有效。
前缀索引。不支持索引上的前缀
NDB
表。如果前缀在语句中用作索引规范的一部分,例如创建表
,ALTER TABLE
,或创建索引
,前缀不是由创建的NDB
.包含索引前缀的语句,并创建或修改索引前缀
NDB
表,必须仍然是语法有效的。例如,下面的语句总是失败,错误为1089前缀键不正确;使用的密钥部分不是字符串,使用的长度大于密钥部分,或者存储引擎不支持唯一前缀密钥,无论存储引擎:CREATE TABLE t1 (c1 INT NOT NULL,c2 VARCHAR(100), INDEX i1 (c2(500)));
这是因为SQL语法规则规定,索引的前缀不能大于索引本身。
保存点和回滚。保存点和到保存点的回滚被忽略
MyISAM
.提交的持久性。磁盘上没有持久提交。会复制提交,但不能保证在提交时将日志刷新到磁盘。
复制。不支持基于语句的复制。使用
——binlog-format =行
(或——binlog-format =混合
)设置集群复制。看到第23.6节“NDB集群复制”,以查询更多资料。使用全局事务标识符(gtid)进行复制不兼容NDB集群,在NDB集群8.0中不支持。使用?时不要启用gtid
NDB
存储引擎,因为这很可能导致问题,包括NDB集群复制失败。NDB集群不支持半同步复制。
生成的列。的
NDB
存储引擎不支持在虚拟生成的列上建立索引。与其他存储引擎一样,您可以在已存储的生成列上创建索引,但您应该记住这一点
NDB
使用DataMemory
用于存储生成的列以及IndexMemory
对于索引。看到NDB集群中的JSON列和间接索引举个例子。NDB Cluster将存储的生成列中的更改写入二进制日志,而不对虚拟列的更改进行日志记录。这应该不会影响NDB集群复制或之间的复制
NDB
和其他MySQL存储引擎。
看到第23.1.7.3节“新开发银行集群交易处理的限制”,以了解更多有关事务处理限制的资料NDB
.