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 的一部分 | 是 |