MYSQL :第六篇 存储引擎 您所在的位置:网站首页 mysql多表修改 MYSQL :第六篇 存储引擎

MYSQL :第六篇 存储引擎

2023-07-12 16:35| 来源: 网络整理| 查看: 265

MYSQL的体系结构

1、连接层:包含Sock通信以及TIP/IP通信的客户端的连接,主要完成类似于连接处理,授权认证,包含线程池的概念,通过SSL保证和验证安全连接的权限。

2、服务层:SQL接口,缓存查询,SQL的分析和优化,包含一些内置函数执行,是否用索引也是在这里,优化SQL,确定标的查询顺序,生成相应的执行操作,查询语句还会查询内部的缓存,提高查询效率。

3、引擎层:真正负责MySQL中数据的存储和查取,服务器通过api和存储引擎通信,不同的引擎具有不同的功能,根据业务需求选取引擎。

4、存储层:做数据库的存储和提取,数据,索引,二进制日志,查询日志,错误日志,慢查询日志等存储到系统文件上,通过存储引擎进行交互。

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

(注意:MySQL在5.5之后存储引擎默认为Innodb)

在创建表时,添加存储引擎:

ENGINE = INNODB;

查询当前数据库支持的引擎:

SHOW = ENGINES;

修改存储引擎:

ALTER  table 表名 ENGINE = "存储引擎"

INNODB

1、概述:Innodb 数据引擎是一种兼顾高可信和高性能通用存储引擎

2、特点:支持事务(DML 遵循ACID模型)

                支持外键foreign key约束,保证数据的完整性和正确性

                支持行级锁,提高并发访问的性能

3、文件,tableName.ibd tableName 表名,Innodb引擎每张表都会生成一个对应的表空间文件,存储数据,索引和表结构

注意:直接打开ibd文件,是乱码的,如果想观察,MySQL提供了一个指令 ibd2sdi(sdi-是新版的存储表结构的方式,frm- 是之前的版本)

Innodb存储结构:

        表空间(tableSpace):Innodb 存储引擎逻辑结构的最高层,ibd文件其实就是表空间文件,表中包含多个segment(段)

        段(segment):数据段,索引段,回滚段等,一个段包含多个区;

        区(Extent):区是表空间的单元结构,每个区大小为1M,包含64页数据;

        页(page):页是最小的组成单元,它是Innodb存储引擎磁盘管理的最小单元,默认是16K

        行(Row):每一行定义存储字段,还有一些隐藏字段。

Myisam引擎

概述:是MySQL早起的存储引擎

特点:不支持事务,不支持外键

           不支持行锁,支持表锁

           访问速度快

文件:表名.sdi 存储表结构信息

           表名.MYD 存储数据

           表名.MYI  存储索引

Memory

概述:使用内存进行操作,会受断电影响,所以只能用来做临时表或者缓存。

特点:内存存放,支持Hash 索引(默认),查询速度快。

文件:sdi:存储表结构信息

存储引擎的选用:

Innodb:支持事务,外键,应用对于事务的完整性有比较高的要求时,在并发情况下,要求数据的一致性;数据的操作除了插入和查询外,还包含很多的更新,删除操作,那么Innodb存储引擎是比较合适的。

MYISAM:如果应用是以读和插入操作为主,只有很少的更新和删除操作,并对事务的完整性和并发性要求不高,则选择MYISAM

MEMORY:把数据保存到内存中,访问速度快,对于临时表、缓存非常友好,但对表的大小有限制,,数据安全性较低。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有