MySQL 8.4 发行说明
NDB
存储引擎使用分布式、无共享架构实现,这导致它在许多方面的行为与 InnoDB
不同。对于那些不习惯使用 NDB
的人来说,由于其在事务、外键、表限制和其他特性方面的分布式特性,可能会出现意外行为。下表显示了这些内容
表 25.1 InnoDB 和 NDB 存储引擎之间的区别
特性 | InnoDB (MySQL 8.4) |
NDB 8.4 |
---|---|---|
MySQL 服务器版本 | 8.4 | 8.4 |
InnoDB 版本 |
InnoDB 8.4.0 |
InnoDB 8.4.0 |
NDB 集群版本 | 不适用 | NDB
8.4.0/8.4.0 |
存储限制 | 64TB | 128TB |
外键 | 是 | 是 |
否 | 事务 | 所有标准类型 |
READ COMMITTED | 是 | MVCC |
否 | 是 | 数据压缩 |
否 (NDB 检查点和备份文件可以压缩) | 大行支持 (> 14K) | 支持 VARBINARY 、VARCHAR 、BLOB 和 TEXT 列 |
仅支持 BLOB 和 TEXT 列 (使用这些类型存储非常大量的数据会降低 NDB 性能) |
复制支持 | 使用 MySQL 复制进行异步和半同步复制;MySQL 组复制 |
NDB 集群内自动同步复制;使用 MySQL 复制在 NDB 集群之间进行异步复制 (不支持半同步复制) | 读取操作的横向扩展 | 是 (MySQL 复制) |
是 (NDB 集群中的自动分区;NDB 集群复制) | 写入操作的横向扩展 | 需要应用程序级分区(分片) |
是 (NDB 集群中的自动分区对应用程序透明) | 高可用性 (HA) | 内置,来自 InnoDB 集群 |
是 (专为 99.999% 的正常运行时间而设计) | 节点故障恢复和故障转移 | 来自 MySQL 组复制 |
自动 (NDB 架构中的关键要素) | 节点故障恢复时间 | 30 秒或更长时间 |
通常 < 1 秒 | MVCC | 是 |
实时性能 | MVCC | 内存表 |
是 (某些数据可以选择存储在磁盘上;内存和磁盘数据存储都是持久的) | 是 | 否 |
对存储引擎的 NoSQL 访问 | 是 | 是 (多个 API,包括 Memcached、Node.js/JavaScript、Java、JPA、C++ 和 HTTP/REST) |
并发和并行写入 | 最多 48 个写入器,针对并发写入进行了优化 | 是 |
冲突检测和解决 (多个来源) | MVCC | 是 |
是 (MySQL 组复制) | 哈希索引 | 在线添加节点 |
使用 MySQL 组复制的读/写副本 | 是 (所有节点类型) | 是 |
在线升级 | 是 (使用复制) | 是 |