该NDB
存储引擎采用分布式,无共享架构,这会导致它从行为不同的方式实现 InnoDB
在多种方式。对于那些不习惯使用的人来说 NDB
,由于其在交易,外键,表格限制和其他特征方面的分布性,可能会出现意外行为。这些如下表所示:
表3.1 InnoDB和NDB存储引擎之间的差异
特征 | | |
MySQL服务器版 | 5.7 | 5.7 |
| | |
NDB群集版本 | N / A | |
存储限制 | 64TB | 128TB(截至NDB 7.5.2) |
外键 | 是 | 是 |
交易 | 所有标准类型 | |
MVCC | 是 | 没有 |
数据压缩 | 是 | 否(可以压缩NDB检查点和备份文件) |
大排支撑(> 14K) | 支持 | 仅支持 |
复制支持 | 使用MySQL Replication进行异步和半同步复制; MySQL 组复制 | NDB集群内的自动同步复制; NDB群集之间的异步复制,使用MySQL Replication(不支持半同步复制) |
读取操作的扩展 | 是(MySQL复制) | 是(NDB群集中的自动分区; NDB群集复制) |
写操作的横向扩展 | 需要应用程序级分区(分片) | 是(NDB群集中的自动分区对应用程序是透明的) |
高可用性(HA) | 内置,来自InnoDB集群 | 是(专为99.999%的正常运行时间而设计) |
节点故障恢复和故障转移 | 来自MySQL Group Replication | 自动(NDB架构中的关键元素) |
节点故障恢复的时间 | 30秒或更长时间 | 通常<1秒 |
实时性能 | 没有 | 是 |
内存表 | 没有 | 是(某些数据可以选择存储在磁盘上;内存和磁盘数据存储都是耐用的) |
NoSQL访问存储引擎 | 是 | 是(多个API,包括Memcached,Node.js / JavaScript,Java,JPA,C ++和HTTP / REST) |
并发和并行写入 | 是 | 最多48个写入器,针对并发写入进行了优化 |
冲突检测和解决方案(多个复制主站) | 是(MySQL组复制) | 是 |
哈希索引 | 没有 | 是 |
在线添加节点 | 使用MySQL Group Replication读/写副本 | 是(所有节点类型) |
在线升级 | 是(使用复制) | 是 |
在线架构修改 | 是的,作为MySQL 5.7的一部分 | 是 |