Mysql高级:存储引擎

目录

Mysql体系结构:

存储引擎:

InnoDB:

文件:

InnoDB的逻辑存储结构:

MyISAM:

Memory:

面试题:InnoDB和Myisam的区别:

存储引擎选择:


Mysql体系结构:

  • 连接层:最上层是客户端和链接服务,链接服务提供安全方案,服务器验证客户端具有的操作权限.
  • 服务层:完成核心服务功能,如SQL接口,缓存查询,SQL分析与优化,部分内置函数的执行
  • 引擎层:存储引擎负责了MySQL数据的存储和提取,服务器根据需求选择合适的存储引擎
  • 存储层:将数据文件存储在文件系统上,完成与存储引擎的交互

存储引擎:

存储引擎是存储数据,建立索引,查询/更新数据等技术的实现方式.存储引擎是基于表的,而不是基于库的,所以存储引擎也被称为表类型.

InnoDB:

介绍:InnoDB是一个兼顾高可靠和高性能的存储引擎,在Mysql5.5之后,InnoDB是默认的Mysql存储引擎

特点:1.DML(增删改)语句遵循ACID模型,支持事务

2.支持行级锁,具有较高的并发性能

3.支持外键Foreign Key约束,保证数据的完整性和正确性

文件:

innoDB对应的表以xxx.ibd格式存储,xxx是表名,ibd是文件后缀,InnoDB存储引擎的每张表对应一个表空间文件,表中存储着该表的结构(frm,sdi),数据和索引.

数据库中的表文件一般存储在C:\ProgramData\MySQL\MySQL Server 8.0\Data,可以在资源管理器查看,不过ibd文件是以二进制形式存在,无法查看具体内容.

若你想查看,则在C:\ProgramData\MySQL\MySQL Server 8.0\Data\**目录中输入cmd进入当前文件夹的命令行,输入ibd2sdi 标明1.ibd查看ibd结构

InnoDB的逻辑存储结构:

ibd文件就是一个表空间,表空间中由段组成,段由区(1M)组成的,区是由一个一个数据页组成的,每一页(16K)由一个个数据行组成的.

MyISAM:

介绍:

MyISAM是Mysql早期默认的存储引擎

特点:

1.不支持事务,不支持外键

2.不支持行锁,支持表锁

3.访问速度快

文件:

以MYD,MYI,sdi后缀存储

MYD:存储数据

MYI:存储索引

sdi:存储表结构信息

Memory:

介绍:Memory引擎的表数据存储在内存中,由于受到硬件问题,或断电问题的影响,只能将这些表作为临时表或缓存使用.

特点:

内存存放

hash索引(默认)

文件:

xxx.sdi:存储表结构信息

面试题:InnoDB和Myisam的区别:

1.文件存储

2.事务支持

3.锁的范围

4.外键支持

存储引擎选择:

InnoDB:MYSql的默认存储引擎,对事务的完整性和并发性要求较高的情况下使用.

MyISAM:应用以读操作和插入操作为主,很少的更新和删除操作,比如业务系统中的日志,电商中足迹,评论相关数据.不过现在几乎被MongoDB取代

MEMORY:通常用来做缓存,现在几乎被Redis取代.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值