MySQL 服务器提供了多种存储引擎选择。由于 NDB 和 InnoDB 都可以作为事务型 MySQL 存储引擎,MySQL 服务器的用户有时会对 NDB Cluster 产生兴趣。他们将 NDB 视为 MySQL 默认 InnoDB 存储引擎的潜在替代方案或升级。虽然 NDB 和 InnoDB 具有共同特性,但在架构和实现上存在差异,因此一些现有的 MySQL 服务器应用程序和使用场景可能非常适合 NDB Cluster,但并非全部适用。MySQL Server offers a number of choices in storage engines. Since
both NDB and
InnoDB can serve as transactional
MySQL storage engines, users of MySQL Server sometimes become
interested in NDB Cluster. They see
NDB as a possible alternative or
upgrade to the default InnoDB storage
engine in MySQL. While NDB and
InnoDB share common characteristics,
there are differences in architecture and implementation, so that
some existing MySQL Server applications and usage scenarios can be
a good fit for NDB Cluster, but not all of them.
在本节中,我们讨论并比较 NDB 8.4 使用的 NDB 存储引擎与 MySQL 8.4 使用的 InnoDB 的一些特性。接下来的几节提供了技术比较。在许多情况下,关于何时及何地使用 NDB Cluster 的决定必须根据具体情况逐案做出,综合考虑所有因素。虽然本文档无法涵盖每一种可想象的使用场景的具体细节,但我们也尝试提供一些非常一般性的指导,说明某些常见类型的应用对于 NDB 与 InnoDB 后端的相对适用性。In this section, we discuss and compare some characteristics of
the NDB storage engine used by NDB
8.4 with InnoDB used in
MySQL 8.4. The next few sections provide a technical
comparison. In many instances, decisions about when and where to
use NDB Cluster must be made on a case-by-case basis, taking all
factors into consideration. While it is beyond the scope of this
documentation to provide specifics for every conceivable usage
scenario, we also attempt to offer some very general guidance on
the relative suitability of some common types of applications for
NDB as opposed to
InnoDB back ends.
NDB Cluster 8.4 使用基于 MySQL 8.4 的 mysqld,包括对 InnoDB 1.1 的支持。虽然可以在 NDB Cluster 中使用 InnoDB 表,但这些表不是集群的。同样,不能将 NDB Cluster 8.4 发行版中的程序或库与 MySQL Server 8.4 一起使用,反之亦然。NDB Cluster 8.4 uses a mysqld based on MySQL
8.4, including support for InnoDB
1.1. While it is possible to use InnoDB tables
with NDB Cluster, such tables are not clustered. It is also not
possible to use programs or libraries from an NDB Cluster 8.4
distribution with MySQL Server 8.4, or the reverse.
虽然某些类型的常见业务应用程序可以在 NDB Cluster 或 MySQL Server 上运行(最有可能使用 InnoDB 存储引擎),但在架构和实现上仍存在一些重要差异。第 25.2.6.1 节,“NDB 与 InnoDB 存储引擎之间的差异”,总结了这些差异。由于这些差异,某些使用场景显然更适合某一引擎;参见 第 25.2.6.2 节,“NDB 与 InnoDB 工作负载”。这反过来又影响了哪些类型的应用程序更适合使用 NDB 或 InnoDB。有关在常见数据库应用中各自的相对适用性比较,请参见 第 25.2.6.3 节,“NDB 与 InnoDB 功能使用总结”。While it is also true that some types of common business
applications can be run either on NDB Cluster or on MySQL Server
(most likely using the InnoDB storage
engine), there are some important architectural and implementation
differences. Section 25.2.6.1, “Differences Between the NDB and InnoDB Storage Engines”,
provides a summary of the these differences. Due to the
differences, some usage scenarios are clearly more suitable for
one engine or the other; see
Section 25.2.6.2, “NDB and InnoDB Workloads”. This in turn
has an impact on the types of applications that better suited for
use with NDB or
InnoDB. See
Section 25.2.6.3, “NDB and InnoDB Feature Usage Summary”, for a comparison
of the relative suitability of each for use in common types of
database applications.
有关 NDB 和 MEMORY 存储引擎相对特性的相关信息,请参见 何时使用 MEMORY 或 NDB Cluster。For information about the relative characteristics of the
NDB and
MEMORY storage engines, see
When to Use MEMORY or NDB Cluster.
更多关于 MySQL 存储引擎的信息,请参见 第 18 章,替代存储引擎。See Chapter 18, Alternative Storage Engines, for additional information about MySQL storage engines.