MySQL8存储引擎 - 全栈教程之MySQL8教程

MySQL8存储引擎包含:MySQL8存储引擎介绍、MySQL8存储引擎分类和MySQL8存储引擎示例等,全栈教程之MySQL8教程,主打原创、全部免费。

教程目录:
教程内容:
最近更新:2025-03-11

一、MySQL8存储引擎介绍

  • MySQL 存储引擎以前也叫表处理器,它的主要作用就是接受上层下发的指令,然后对表中的数据进行增删改查等操作。


1.1、存储引擎的流程

MySQL8把连接管理、语法解析和查询优化等不实际接触数据存取的功能统一由 MySQL Server 处理,而实际接触数据存取的功能统一由 MySQL 存储引擎处理,例如,一次简单的 MySQL 查询执行顺序为:

  • 首先,客户端 Client 发出 SQL 命令;
  • 然后,服务端 MySQL Server 生成执行计划;
  • 最后,由 MySQL 存储引擎返回数据。


二、MySQL8存储引擎分类

  • MySQL8默认提供了 9 种存储引擎,支持的数量取决于您安装的 MySQL 版本,分别为:InnoDB、Memory、CSV、Archive、Blackhole、NDB、Merge、Federated、Example 等,默认的存储引擎为:InnoDB 。


2.1、InnoDB

  • InnoDB 存储引擎是 MySQL 的事务安全(符合 ACID)的存储引擎,具有提交、回滚和崩溃恢复等功能以保护用户数据。InnoDB 行级锁定可提高多用户并发性能,为了保持数据完整性, InnoDB 还支持 FOREIGN KEY 外键完整性约束。


2.2、MyISAM

  • MyISAM 存储引擎,使用的库表占用小。 因为表级锁限制了读/写工作负载的性能,因此 MyISAM 存储引擎通常用于数据仓库配置中的只读或以读为主的工作负载。


2.3、Memory

  • Memory 存储引擎将所有数据存储在 RAM 中,以便在需要快速查找非关键数据的环境中进行快速访问。由于数据容易受到硬件或断电的影响,因此只能用作临时工作区或从其它表中提取的只读缓存。


2.4、CSV

  • CSV 存储引擎是有逗号分隔值的文本文件,以 CSV 格式导入或转储数据,以便与读写相同格式的脚本和应用程序交换数据,由于 CSV 表没有索引,您通常在正常操作期间将数据保留在 InnoDB 表中,仅在导入或导出阶段使用 CSV 表。


2.5、Archive

  • Archive 存储引擎主要用于紧凑的、未索引的表,存储和检索大量很少引用的历史存档数据或安全审计信息。


2.6、NDB

  • NDB 存储引擎也称为 NDBCLUSTER,此集群数据库引擎适用于需要尽可能高的正常运行时间和可用性的程序。


2.7、Merge

  • Merge 存储引擎使 MySQL DBA 或开发人员能够对一系列相同的 MyISAM 表进行逻辑分组,并将它们作为一个整体对象进行引用,主要适用于数据仓库等 VLDB 环境。


2.8、Federated

  • Federated 存储引擎提供链接独立的 MySQL 服务器,从多个物理服务器创建一个逻辑数据库,适合分布式或集群环境。


2.9、Example

  • Example 存储引擎,作为 MySQL 源代码中的示例存储引擎,主要用于说明如何开始编写新的存储引擎。它主要是开发人员感兴趣的,您可以使用此存储引擎创建表,但不能在其中存储或从中检索任何数据。


三、MySQL8存储引擎示例

  • 创建或修改表时可以通过添加关键字 ENGINE 来指定使用哪个存储引擎,如果您省略该关键字,则使用默认存储引擎。


3.1、MySQL8设置默认存储引擎

您可以为普通表或者临时表设置默认存储引擎,例如使用如下不同的参数设置。

# 为普通表设置默认存储引擎
set default_storage_engine = InnoDB;
# 为临时表设置默认存储引擎
set default_tmp_storage_engine = MyISAM;


具体操作流程:

首先,查看当前MySQL8数据库提供了哪些可用存储引擎,然后查看默认使用的是哪个存储引擎。

# 查看当前版本提供的全部存储引擎
show engines;
# 查看默认存储引擎
select @@default_storage_engine;


然后,设置默认存储引擎。

set default_storage_engine = InnoDB;


或者,通过修改配置文件来设置默认的存储引擎。

vim /etc/my.cnf
或:vim /etc/mysql/my.cnf
或:vim /etc/mysql/conf.d/mysqld.cnf
# 添加如下配置:
default-storage-engine=InnoDB


最后,重启 MySQL 服务:

systemctl restart mysql


3.2、MySQL8修改指定存储引擎

# 创建表指定存储引擎
create table try8_tb (i int) engine = InnoDB;
# 修改表指定存储引擎
alter table try8_tb engine = MyISAM;


四、MySQL8存储引擎总结

  • MySQL8教程 - MySQL8存储引擎,介绍MySQL和MySQL8数据库,从MySQL8存储引擎分类开始,逐步到MySQL8存储引擎示例等,通篇实用易懂,让MySQL8入门更加快速和简单。


小提示:试试吧全栈教程之MySQL8教程,主打原创,定期更新,全部免费,欢迎收藏学习和转载分享。