Documentation Home

18.2.6.1 NDB 和 InnoDB 存储引擎的区别

NDB存储引擎是使用分布式、无共享架构实现的,这导致它在许多方面表现 不同InnoDB。对于那些不习惯使用 的人来说 NDB,由于其在事务、外键、表限制和其他特征方面的分布式特性,可能会出现意想不到的行为。这些如下表所示:

表 18.1 InnoDB 和 NDB 存储引擎之间的功能差异。

特征 InnoDB1.1 NDB7.3, NDB7.4
MySQL服务器版本 5.6 5.6
InnoDB版本 InnoDB5.6.51 InnoDB5.6.51
NDB 集群版本 不适用 NDB7.3.33, 7.4.39
存储限制 64TB 3TB(实际上限基于 48 个数据节点,每个节点 64GB RAM;可以通过基于磁盘的数据和 BLOB 增加)
外键 是的 是的
交易 所有标准类型 READ COMMITTED
MVCC 是的
数据压缩 是的 否(可以压缩 NDB 检查点和备份文件)
大行支持(> 14K) 支持VARBINARYVARCHARBLOBTEXT 仅支持BLOBTEXT列(使用这些类型存储大量数据会降低 NDB 性能)
复制支持 使用 MySQL Replication 进行异步和半同步复制 NDB Cluster 内的自动同步复制;NDB 集群之间的异步复制,使用 MySQL 复制(不支持半同步复制)
读取操作的横向扩展 是(MySQL 复制) 是(NDB Cluster 中的自动分区;NDB Cluster 复制)
写入操作的横向扩展 需要应用程序级分区(分片) 是(NDB Cluster 中的自动分区对应用程序是透明的)
高可用性 (HA) 需要额外的软件 是(专为 99.999% 的正常运行时间而设计)
节点故障恢复和故障转移 需要额外的软件 自动(NDB 架构中的关键元素)
节点故障恢复时间 30 秒或更长时间 通常 < 1 秒
实时性能 是的
内存表 是(一些数据可以选择存储在磁盘上;内存和磁盘数据存储都是持久的)
NoSQL 访问存储引擎 是的 是(多种 API,包括 Memcached、Node.js/JavaScript、Java、JPA、C++ 和 HTTP/REST)
并发和并行写入 不支持 最多 48 个写入器,针对并发写入进行了优化
冲突检测和解决(多个复制源) 是的
哈希索引 是的
在线添加节点 使用 MySQL 复制的只读副本 是(所有节点类型)
在线升级 是的
在线模式修改 是的,作为 MySQL 5.6 的一部分 是的