Mysql零基础入门——存储引擎

120 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

前言

上一篇文章我们学习了mysql数据库的基本操作,这篇文章我们来学习下mysql的存储引擎。

存储引擎

mysql存储引擎是mysql系统中的重要组成部分,在mysql中存储引擎的作用是用于指定表的类型并规定表如何存储和索引数据、是否支持事务等。

mysql包含九大存储引擎: InnoDB,FEDERATED,CSV,BLACKHOLE,MRG_MYISAM,MEMORY,MYISAM,ARCHIVE,PERFORMANCE_SCHEMA。

其中我们最常用的,也最为重要的mysql存储引擎是InnoDB,因为InnoDB支持事务,而mysql最重要的特点之一就是支持事务。

说到这里,很多刚开始学mysql的小伙伴可能不太了解事务,我就在这里简单的讲一下。

事务简介

事务处理主要是应用于维护数据的完整性,保证一组sql语句要么全部执行成功,要么全部执行失败,不会存在有些执行成功而有些执行失败的情况出现。这就是事务的原子性。

可能有的小伙伴会不太理解,为什么要有事务呢?什么情况下需要用到事务呢?

举个最容易理解的例子,假如我用手机给张三转账1000元,转账成功的话我的账户会扣除1000元的余额,张三的账户会增加1000元的余额,如果系统出现了问题的话导致了转账失败,那我和张三的账户余额都不会发生变化。要么我的余额减少1000元,张三的余额增加1000元;要么我和张三的余额都不变。不可能说我的余额不减少张三的余额增加或者我的余额减少了张三的余额不变的情况。这就是事务的一个例子。具体的实现过程我在后面的内容中会具体讲解。

查看mysql存储引擎

SHOW ENGINES\G

\G是指查询结果按列显示,主要是为了方便我们查看。

结果如图所示:

微信截图_20221011161137.png

查询出来的信息有很多,我们在此举出几个重要的参数。

Enginen:表示存储引擎的名称。

Support:表示mysql是否能够支持该存储引擎。

Comment:表示关于mysql中该存储引擎的描述。

Transactions:表示该存储引擎是否支持事务功能。

查看mysql默认存储引擎

SHOW VARIABLES LIKE 'default_storage_engine';

mysql系统返回如下信息:

+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set, 1 warning (0.01 sec)

这表示我的mysql数据库默认存储引擎是InnoDB。我的mysql数据库版本是8.0,在5.5的版本之前默认存储引擎都是MyISAM,5.5之后的版本默认存储引擎都改为了InnoDB。而在我们mysql中最常用的存储引擎也是这两种。两种存储引擎各有优缺点。InnoDB最大的优点就是支持事务功能,适用于需要事务支持、高并发、对数据一致性要求高的系统中。MyISAM最大的优点是查询和插入的速率高,但是MyISAM不支持事务和外键,适用于低并发、对数据一致性要求不高的系统之中。

修改mysql默认存储引擎

default_storage_engine = MyISAM

上面的sql是将默认存储引擎修改为MyISAM,修改之后需要重启mysql才会生效。

我们重启mysql,并用之前的方法查询。

SHOW VARIABLES LIKE 'default_storage_engine';

mysql系统返回如下信息:

+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set, 1 warning (0.01 sec)

可以看到mysql的默认存储引擎已经被修改为MyISAM。

总结

我们mysql的存储引擎的内容就介绍到这里,下一篇文章我们来介绍mysql中的数据类型和字符集。希望大家多多支持。