MYSQL :第六篇 存储引擎 | 您所在的位置:网站首页 › mysql多表修改 › MYSQL :第六篇 存储引擎 |
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 = "存储引擎" INNODB1、概述: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 实验室设备网 版权所有 |