| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> mysql第三话 - mysql内存结构详解以及事务的更新语句的执行过程 -> 正文阅读 |
|
[大数据]mysql第三话 - mysql内存结构详解以及事务的更新语句的执行过程 |
本篇文章主要分析一下mysql的内存结构。 介绍Mysql是最流行的关系型数据库,关系型数据库具有的特点有如下几个:
1.架构图上图来自Mysql官网Mysql 8.0 InnoDB 架构。咋一看怎么这么复杂? 1.1 Buffer Pool缓存取大小,达到默认大小128M后进行刷盘操作,服务器资源条件允许的话可以设置大一点。
缓存区回收机制:LRU算法,HashMap加双向链表,key对应链表的下标 整个Buffer pool一个双向链表架构,分为热数据区(5/8)和冷数据区(3/8),从而来实现回收算法。 1.2 Change Buffer它是Buffer Pool的一部分,当使用某个数据的时候,如果该数据不是唯一索引,不存在数据重复的情况,也就不需要从磁盘加载索引来判断数据是否重复,这种数据就可先把修改记录在内存的Change Buffer缓冲池中,从而提升语句的执行速度。
1.3 Log BufferBuffer Pool数据并不会直接同步到磁盘,也还是会先进入Log Buffer,由刷盘缓冲区根据刷盘时机进行刷盘,默认1
1.4 ibdata1表空间主要存储相关的系统信息区 1.5 Undo Log开启事务时记录事务发生之前的数据状态,发生异常则回滚,保证原子性
1.6 Redo LogInnoDB独有,大小默认是48M,两个文件循环写入,前面的内容会被覆盖,一旦写满会触发Buffer pool刷盘,主要是记录了“在某个数据上做了什么修改”。属于物理日志,为innoDB提供了奔溃恢复的特性,实现了持久性。
1.7 bin logmysql所有的引擎都支持开启binlog日志,以事件的形式记录了所有的执行语句,可以用来做主从复制和数据恢复。
默认是关闭的,怎么开启使用会在后续文章中记录。 1.8 File-Per-Table 表文件表空间表空间,每个表都有单独的表文件。在data目录下可以看到。库名文件下会有对应的表文件user.ibd和user.frm
1.9 General Tablespaces通用表空间通用表空间为通过create tablespace语法创建的共享表空间。其可以容纳多张表,且其支持所有的行格式。
1.10 Temporary Tablespace临时表空间由于查询或者手动创建的临时表,会创建于ibtemp1文件中,mysql关闭或者初始化时都会临时表空间文件都会被自动移除或者重新创建。 2.InnoDB为什么还要加一个Redo Log首先了解从磁盘加载数据页
缺点
在此情景下新增了Redo Log保证内存数据的安全性,延迟刷盘的时机,提升吞吐量
3.分析一下一条事务的更新语句的执行过程
log这块会保证两阶段提交,奔溃后事务处理流程:
以上就是本章的全部内容了。 上一篇:mysql第二话 - mysql架构和执行流程 三更灯火五更鸡,正是男儿读书时。黑发不知勤学早,白首方悔读书迟 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:55:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |