MySQL 服务器在存储引擎方面提供了多种选择。由于 NDB
和 InnoDB
都可以作为事务性 MySQL 存储引擎,因此 MySQL 服务器的用户有时会对 NDB 集群感兴趣。他们将 NDB
视为 MySQL 中默认 InnoDB
存储引擎的可能替代品或升级版。虽然 NDB
和 InnoDB
有一些共同的特点,但在架构和实现上存在差异,因此一些现有的 MySQL 服务器应用程序和使用场景可能非常适合 NDB 集群,但并非所有情况都如此。
在本节中,我们将讨论和比较 NDB 8.4 使用的 NDB
存储引擎与 MySQL 8.4 中使用的 InnoDB
存储引擎的一些特性。接下来的几节将提供技术比较。在许多情况下,必须根据具体情况,综合考虑所有因素,才能决定何时何地使用 NDB 集群。虽然本文档的范围不包括为每一种可能的使用场景提供具体说明,但我们也尝试针对某些常见类型的应用程序相对于 NDB
和 InnoDB
后端的适用性提供一些非常 کلی 的指导。
NDB 集群 8.4 使用基于 MySQL 8.4 的 mysqld,包括对 InnoDB
1.1 的支持。虽然可以在 NDB 集群中使用 InnoDB
表,但此类表不属于集群。也不可能将 NDB 集群 8.4 发行版中的程序或库与 MySQL 服务器 8.4 一起使用,反之亦然。
虽然某些类型的常见业务应用程序既可以在 NDB 集群上运行,也可以在 MySQL 服务器上运行(很可能是使用 InnoDB
存储引擎),但两者在架构和实现上存在一些重要差异。第 25.2.6.1 节“NDB 和 InnoDB 存储引擎之间的区别”概述了这些差异。由于这些差异,某些使用场景显然更适合其中一种引擎;请参阅第 25.2.6.2 节“NDB 和 InnoDB 工作负载”。这反过来又会影响更适合使用 NDB
或 InnoDB
的应用程序类型。请参阅第 25.2.6.3 节“NDB 和 InnoDB 功能使用总结”,比较两者在常见数据库应用程序类型中的适用性。
有关 NDB
和 MEMORY
存储引擎的相对特性的信息,请参阅何时使用 MEMORY 或 NDB 集群。
有关 MySQL 存储引擎的更多信息,请参阅第 18 章“备用存储引擎”。