MySQL 服务器提供了多种存储引擎选择。由于 NDB 和 InnoDB 都可以作为事务性 MySQL 存储引擎,因此 MySQL 服务器的用户有时会对 NDB 集群感兴趣。他们将 NDB 视为可能的替代或升级到默认的 InnoDB 存储引擎的选择。
在本节中,我们讨论和比较 NDB 存储引擎(用于 NDB 集群 8.3)和 InnoDB 存储引擎(用于 MySQL 8.3)的特征。接下来的几节提供了技术比较。在许多情况下,关于何时、何地使用 NDB 集群的决定必须根据具体情况进行考虑。虽然超出了本文档的范围,为每种可能的使用场景提供具体指导,但我们也尝试提供一些非常 general 的指导,关于何时使用 NDB 集群或 InnoDB 后端。
NDB 集群 8.1 使用基于 MySQL 8.1 的 mysqld,包括对 InnoDB 1.1 的支持。虽然可以使用 InnoDB 表与 NDB 集群,但这些表不是集群的。也不能使用 NDB 集群 8.1 分发中的程序或库与 MySQL 服务器 8.1,反之亦然。
虽然一些常见的商业应用程序可以在 NDB 集群或 MySQL 服务器(可能使用 InnoDB 存储引擎)上运行,但存在一些重要的架构和实现差异。第 25.2.6.1 节 提供了这些差异的摘要。由于这些差异,一些使用场景明显更适合使用一种引擎或另一种引擎;请参阅 第 25.2.6.2 节。这反过来影响了哪些应用程序更适合使用 NDB 或 InnoDB。第 25.2.6.3 节,比较了每种引擎在常见数据库应用程序中的相对适用性。
关于 NDB
和 MEMORY
存储引擎的相对特征信息,请参阅 何时使用 MEMORY 或 NDB 集群。
有关 MySQL 存储引擎的更多信息,请参阅 第 18 章,替代存储引擎。