MySQL 更改存储引擎

2025年3月17日 | 阅读 3 分钟

MySQL 的存储引擎用于最大限度地提高数据库性能。它处理用于在数据库中存储和管理信息的创建、读取和更新操作。在本文中,我们将学习如何在 MySQL 中更改存储引擎。

以下是 MySQL 支持的各种存储引擎,它们提供不同的功能和特性::

  • ISAM
  • MyISAM
  • MERGE (合并)
  • InnoDB
  • MEMORY (HEAP)
  • ARCHIVE
  • BDB
  • CSV
  • FEDERATED

如果我们想知道我们的 MySQL 服务器支持哪些存储引擎,我们需要使用下面的查询。

它将返回以下输出:

MySQL Change Storage Engine

Support 列的值表示当前服务器是否可以使用该引擎。值为 YES、NODEFAULT 分别表示表类型可用、不可用以及可用且当前设置为默认存储引擎。

如何显示表的当前存储引擎?

我们可以通过几种方式获取表的当前存储引擎,如下所述:

1. 显示表当前存储引擎的第一种方法是在 information_schema 数据库中。例如,如果我们有一个名为 students 的表,位于 mystudentdb 数据库中,我们可以使用以下查询来获取当前存储引擎:

我们将获得以下输出

MySQL Change Storage Engine

2. 显示表当前存储引擎的第二种方法是使用 SHOW TABLE STATUS 命令。例如,如果我们想获取名为 students 的表的存储引擎,我们可以使用以下查询:

我们将看到下面的输出,其中我们可以看到红色矩形框中的当前存储引擎:

MySQL Change Storage Engine

3. 显示表中当前存储引擎的第三种方法是使用 SHOW CREATE TABLE 命令。例如,如果我们想获取名为 students 的表的存储引擎,我们可以使用以下查询:

我们将看到下面的输出,其中我们可以看到红色矩形框中的当前存储引擎:

MySQL Change Storage Engine

如何在 MySQL 中更改存储引擎?

我们可以看到 MySQL 显示 'students' 表使用的是 InnoDB 存储引擎。有时,我们想更改存储引擎。在这种情况下,我们可以使用以下语句:

我们已经通过 SHOW ENGINES 语句了解了 MySQL 服务器当前支持的所有存储引擎。如果我们想将 'students' 表的存储引擎从 InnoDB 更改为任何其他引擎,我们可以使用以下语句:

执行此语句后,我们将得到以下输出:

MySQL Change Storage Engine

我们可以通过再次显示当前存储命令来验证它。请参阅下面的输出,其中 InnoDB 引擎已更改为 MyISAM 引擎:

MySQL Change Storage Engine

如何在 MySQL Workbench 中更改存储引擎?

要在 MySQL Workbench 中更改所需表的存储引擎,我们首先启动该工具并使用用户名和密码登录。现在,我们需要执行以下步骤来更改存储引擎:

1. 转到 Navigation tab(导航选项卡)并单击 Schema menu(模式菜单),其中包含所有先前创建的数据库。选择您想要的数据库(例如,mstudentdb)。这将弹出以下选项。

MySQL Change Storage Engine

2. 展开 Tables sub-menu(表子菜单)并选择要更改存储引擎的表。选择表后,右键单击选定的表(例如,students),然后单击 Alter Table(修改表)选项。单击 Alter Table 选项,我们将得到如下屏幕:

MySQL Change Storage Engine

3. 接下来,单击上一步红色矩形框中显示的 Engine(引擎)选项;我们将看到 MySQL 中所有当前支持的存储引擎的名称。请参阅以下屏幕:

MySQL Change Storage Engine

4. 现在,从给定的选项中选择所需的存储引擎,然后单击 Apply(应用)按钮。这将给出以下屏幕:

MySQL Change Storage Engine

5. 最后,我们将再次单击 Apply 按钮,如果没有发现错误,请单击 Finish(完成)按钮以完成更改存储引擎的过程。

MySQL Change Storage Engine

在本教程中,我们学习了如何显示 MySQL 当前支持的存储引擎,获取表的当前存储引擎,以及将一个引擎更改为另一个引擎。