[译文] MySQL 中的 InnoDB 是什么?包含示例和性能调优技巧的教程

有许多强大的MySQL 存储引擎可供我们使用,而 InnoDB 无疑是最受欢迎的存储引擎之一。它高度可靠和高效,因此它成为5.5以后所有MySQL版本的默认存储引擎也就不足为奇了。让我们更仔细地看看它的优点和特点。

内容目录

  1. MySQL 中的 InnoDB 是什么?
  2. InnoDB 集群
  3. 创建 InnoDB 表
  4. InnoDB 服务器变量和性能调优技巧
  5. 处理 InnoDB 中最常见的错误
  6. 使用 InnoDB 和 dbForge Studio for MySQL 获得最高性能

MySQL 中的 InnoDB 是什么?

现在我们想确定 MySQL InnoDB 存储引擎的特殊之处。以下是它的主要优点:

InnoDB 基于 ACID,支持提交和回滚操作。此外,它不太可能崩溃,因此用户的数据仍然受到保护。

  • 由于行级锁定,多用户性能成为可能。
  • 由于 InnoDB 表有效地组织数据,因此优化了基于主键的查询。每个 InnoDB 表中都有一个称为聚集索引的主键索引。此索引排列数据以减少主键查询的 I/O。
  • MySQL InnoDB 支持外键约束,可以实现和维护数据完整性。

InnoDB 也可以与 MariaDB 服务器一起使用。在这种情况下,InnoDB 提供外键、XA 事务和带有保存点的事务。

InnoDB 集群

每家公司的政策都以提供最安全、最稳定的数据流为前提。但是如何才能实现和保证呢?答案在于 MySQL InnoDB Cluster,它为 MySQL 提供了一个方便的解决方案。在 AdminAPI 和 MySQL Shell 的参与下,您可以轻松管理多个 MySQL 服务器实例以作为单个 InnoDB Cluster 工作。

MySQL InnoDB Cluster 的组件包括以下内容:

  • MySQL 路由器(安全路由到数据库节点)
  • MySQL 组复制(多个相互复制的数据库服务器)
  • MySQL Shell(MySQL 的配置工具,有助于启用具有容错功能的拓扑)

看看它是如何在单个 InnoDB 集群中协同工作的:

[译文] MySQL 中的 InnoDB 是什么?包含示例和性能调优技巧的教程-1

创建 InnoDB 表

为了创建 InnoDB 表,您只需在 CREATE TABLE 语句中指定。例如:ENGINE = InnoDB

CREATE TABLE Emp ( EmpID SMALLINT UNSIGNED NOT NULL , YearBorn YEAR NOT NULL , CityBorn VARCHAR ( 40 ) NOT NULL DEFAULT 'Unknown' ) ENGINE = INNODB ;