MySQL8 存储引擎

MySQL8 存储引擎,MySQL8教程,介绍 MySQL8 存储引擎和示例。

【全栈教程】:https://try8.cn/article
教程目录:
教程内容:
最近更新:2023-04-17

一、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、设置默认存储引擎

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

# 为普通表设置默认存储引擎
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、修改指定存储引擎

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


四、MySQL8 存储引擎 总结

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


《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。