MySql存储引擎

1、MySql存储引擎

1.1、什么是存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

1.2、存储引擎是面向的对象是表还是数据库

结论:存储引擎面向的对象是数据库表。
解释:在一个数据库中我们可以使用多个存储引擎,通过MySql的可视化工具Navicat,我们在建表的时候就可以看出有选择存储引擎的地方,如下图所示:

在这里插入图片描述

1.3、不同的存储引擎在磁盘上的结构

进入我们MySql安装之后的data目录下,选择查看的数据库,会出现如下图所示:

在这里插入图片描述

首先我们建立两张表,一张存储引擎是innodb,一张存储引擎是myisam,如图所示:

在这里插入图片描述

如图所示,我们会发现每一张表都会对应几个文件,这里我创建了一张innodb存储引擎和一张myisam存储引擎的表,对应上图中的下面红框里的东西,如图所示:

在这里插入图片描述

注:如上图所示,有的人在查看的时候应该还会有一张.frm结尾的表,这个文件是描述表结构的一个文件,MySQL8.0以后没有.frm了,元数据都存在系统表空间里。

文件结尾文件内容
.frmframe,数据表结构的信息
.ibdInnodb的index(索引)和data(数据),存放在一个文件中
.MYDMyisam的data(数据)
.MYIMyisam的index(索引)

1.4、Myisam和Innodb查询数据的步骤

1.4.1、Myisam查询数据

通过上面可知,Myisam存储引擎每张表对应在磁盘上有三个文件,.frm,.MYD,.MYI,所以,数据表的数据和索引是分开的,在查询数据时,需要先从索引去找,然后再连接另外一个文件查询数据,有点类似于回表的概念,详情如下图所示:

在这里插入图片描述

1.4.2、Innodb查询数据

Innodb存储引擎对应的是两张表,它将索引和数据存放在了一起,所以,Innodb使用的是B+Tree的存储结构,索引查询完成之后可直接获取到数据,如下图所示:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值