MySQL 8.4 Release Notes
25.2.6.1 NDB 和 InnoDB 存储引擎之间的差异
NDB 存储引擎使用分布式、共享 nothing 架构实现,这使其在许多方面与 InnoDB
存储引擎不同。对于不熟悉使用 NDB
的用户,可能会出现由于其分布式特性导致的 transaction、外键、表限制等方面的不期望行为。这些差异在以下表中显示:
Table 25.1 NDB 和 InnoDB 存储引擎之间的差异
Feature | InnoDB (MySQL 8.4) |
NDB 8.4 |
---|---|---|
MySQL Server Version | 8.4 | 8.4 |
InnoDB Version |
InnoDB 8.4.0 |
InnoDB 8.4.0 |
NDB Cluster Version | N/A | NDB 8.4.0/8.4.0 |
Storage Limits | 64TB | 128TB |
Foreign Keys | 是 | 是 |
Transactions | 所有标准类型 | READ COMMITTED |
MVCC | 是 | 否 |
Data Compression | 是 | 否(NDB 检查点和备份文件可以压缩) |
Large Row Support (> 14K) | 对VARBINARY 、VARCHAR 、BLOB 和TEXT 列支持 |
仅对BLOB 和TEXT 列支持(使用这些类型存储非常大量数据可能会降低NDB性能) |
Replication Support | 异步和半同步复制使用MySQL Replication;MySQLGroup Replication | NDB集群中的自动同步复制;异步复制之间的NDB集群,使用MySQL Replication(半同步复制不支持) |
Scaleout for Read Operations | 是(MySQL Replication) | 是(NDB集群中的自动分区;NDB集群复制) |
Scaleout for Write Operations | 需要应用程序级别的分区(sharding) | 是(NDB集群中的自动分区对应用程序透明) |
High Availability (HA) | 内置的,从InnoDB集群中 | 是(设计为99.999% uptime) |
Node Failure Recovery and Failover | 从MySQL Group Replication中 | 自动(NDB架构中的关键元素) |
Time for Node Failure Recovery | 30秒或更长 | 通常<1秒 |
Real-Time Performance | 否 | 是 |
In-Memory Tables | 否 | 是(部分数据可以可选地存储在磁盘上;内存和磁盘数据存储都是持久的) |
NoSQL Access to Storage Engine | 是 | 是(包括 Memcached、Node.js/JavaScript、Java、JPA、C++ 和 HTTP/REST 等多个 API) |
Concurrent and Parallel Writes | 是 | 最多 48 个写入器,优化了并发写入 |
Conflict Detection and Resolution (Multiple Sources) | 是(MySQL Group Replication) | 是 |
Hash Indexes | 否 | 是 |
Online Addition of Nodes | 使用 MySQL Group Replication 的读/写副本 | 是(所有节点类型) |
Online Upgrades | 是(使用复制) | 是 |
Online Schema Modifications | 是,作为 MySQL 8.4 的一部分 | 是 |