【MySQL】存储引擎

这是进阶内容的第一篇,我们来看看MySQL的存储引擎,之前我们在创建数据表的时候所使用的存储引擎为InnoDB,这是MySQL的默认引擎,但实际上MySQL中的存储引擎有很多,它们之间的特点和使用场景也不同,这篇算是存储引擎的入门,我们先了解下大致的框架,具体细节等到后面的文章

1.MySQL体系结构

在这里插入图片描述

这里概括下每个层的功能即可,因为重点是介绍存储引擎

  • 连接层:负责和客户端进行链接
  • 服务层:这里会完成大多数的核心功能,比如前面文章的查询语句,执行内置的函数等
  • 引擎层:引擎层中的存储引擎负责数据的存储和提取
  • 存储层:数据存储的位置

2.存储引擎

2.1 简介

存储引擎是存储数据、建立索引、更新/查询数据等技术的实现方式。因为存储引擎是基于表的,所以存储引擎也可被称为表类型
在创建数据表的时候我们可以指定引擎,指定引擎的关键字为engine

create table 表名(字段1 数据类型,字段2 数据类型......) engine=引擎;

如果说你想知道自己的MySQL支持哪些引擎的话,可以输入下面的语句

show engines;

在这里插入图片描述
图中的只是截取了一部分,这里还是介绍下每个字段所代表的意思
从左到右依次是引擎名称,是否支持,注释,是否支持事务,是否支持XA协议和是否支持保存点

2.2 InnoDB引擎

在MySQL5.5之后,InnoDB引擎就是MySQL的默认存储引擎,这是因为InnoDB引擎的性能和可靠性高

InnoDB引擎特点

  • 支持事务,DML语句遵循事务的特性
  • 支持外键约束
  • 行级锁

最后一条和MySQL的锁有关,后面的文章会介绍到
总结下来InnoDB引擎的特点就是事务,外键,行级锁

InnoDB所涉及到的磁盘文件的后缀为.ibd,InnoDB每张表都会对应一个.ibd文件,文件里面所存储的是表结构,数据和索引

InnoDB的逻辑存储结构由大到小依次为: 表空间(TableSpece),段(Segmebt),区(Extent),页(Page),行(Row)
表空间就是,ibd文件,一个表空间里面包含了多个段,一个段里面有多个区,一个区里面有多个页,一个页里面有多个行

2.3 MyISAM引擎

MyISAM是MySQL早期的默认的存储引擎
MyISAM引擎特点:

  • 不支持事务和外键
  • 不支持行锁,支持表锁
  • 访问速度快

MyISAM涉及到的磁盘文件有三种,后缀分别为.MYD .MYI和.sdi
其中.sdi存放的是表结构的信息,.MYD存放的是数据,.MYI存放的是索引

2.4 Memory引擎

Memory引擎比较特殊,它是将数据存储在内存当中,所以Memory引擎的表只能作为临时表或者是缓存使用
Memory引擎特点:

  • 内存存放数据
  • hash索引
  • 支持表锁

Memory引擎涉及的磁盘文件为.sdi文件,用来存储表结构信息
本篇到此结束,下一篇是MySQL的索引,完

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星鸦wyk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值