《MySQL技术内幕:InnoDB存储引擎》读书笔记

news/2024/7/5 3:30:32

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.InnoDB中每一页的大小默认为16kb,但是其也支持压缩页的功能,即将原本16kb的页压缩为1kb、2kb、4kb和8kb。当需要从缓存池中申请4kb大小的页时,MySQL的申请步骤如下:

  • 检查4kb的unzip_LRU列表,检查是否有可用的空闲页;
  • 若有,则直接使用;
  • 否则,检查8kb的unzip_LRU列表;
  • 若能够得到空闲页,则分解为2个4kb的页,并且存放到4kb的unzip_LRU列表;
  • 若不能得到空闲页,就从LRU列表中申请一个16kb的页,将其分解为1个8kb和2个4kb的页,并且存放到对应的unzip_LRU列表中。

2.当LRU列表中的页被修改之后,其数据就和磁盘上的数据产生了不一致,这种页被称为脏页,此时数据库会根据checkpoint机制将脏页刷新到磁盘中,脏页不仅存在于LRU列表中,也存在于FLUSH列表中,FLUSH列表中的数据是专门用来管理将数据刷新到磁盘中的。

3.在下列三种情况下重做日志会将重做日志缓冲中的内容刷新到重做日志文件中:

  • master thread每一秒将重做日志缓冲刷新到重做日志文件;
  • 每个事务提交时会将重做日志缓冲刷新到重做日志文件;
  • 当重做日志缓冲池剩余空间小于1/2时,重做日志缓冲刷新到重做日志文件。

4.为了避免数据丢失的问题,事务数据库都采用了write ahead log机制,也就是当事务提交时,存储引擎先将数据写入到重做日志中,然后再修改页中的数据,当数据库发生宕机时,可以通过重做日志来恢复数据。

5.为了协调CPU的处理速度与磁盘的读写速度之间的不匹配问题,MySQL采用了缓冲池来解决这个问题,当发生数据读写时,其都是先将数据写入到缓冲池中,然后通过checkpoint技术将数据写入到磁盘中。

6.checkpoint技术所解决的问题:

  • 缩短数据库的恢复时间;
  • 缓冲池不够用时,将脏页刷新到磁盘;
  • 重做日志不可用时,刷新脏页。

转载于:https://my.oschina.net/zhangxufeng/blog/1526684


http://lihuaxi.xjx100.cn/news/239700.html

相关文章

热闹的聚会与尴尬的聚会_如何增加(和保存)您最喜欢的技术聚会

热闹的聚会与尴尬的聚会by Jen Weber詹韦伯(Jen Weber) 如何增加(和保存)您最喜欢的技术聚会 (How to Grow (and Save) Your Favorite Tech Meetup) Hey meetup facilitators, friends, and future leaders! Do you want more people to show up to your tech event? Or at l…

tcl c语言笔试题,TCL技术类笔试题目.doc

TCL技术类笔试题目模拟电路试题一.二极管1.如图所示电路中,已知电源电压 E4V 时,I1mA。那么当电源电压 E8V 时 , 电流I的大小将是______2.稳压管通常工作于______,来稳定直流输出电压截止区 正向导通区 反向击穿区3. 由二极管的伏安特性可知&…

linux上安装mysql,tomcat,jdk

Linux 上安装 1 安装jdk 检测是否安装了jdk 运行 java –version若有 需要将其卸载a) 查看安装哪些jdk rmp –qa |grep java b) 先卸载openjdk 1.7 c) 在卸载openjdk 1.6 使用rpm –e - -nodeps 卸载的包 安装jdka) 上传jdk到linux 使用Xftp5…

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.7.5 使用StAX写出XML文档

3.7.5 使用StAX写出XML文档 在前一节中,你看到了如何通过写出DOM树的方法来产生XML文件。如果这个DOM树没有其他任何用途,那么这种方式就不是很高效。StAX API使我们可以直接将XML树写出,这需要从某个OutputStream中构建一个XMLStreamWriter…

meetup_我在2017年举办Meetup中学到的知识以及为何对2018年充满期待。

meetupby Daniel Deutsch由Daniel Deutsch 我在2017年举办Meetup中学到的知识以及为何对2018年充满期待。 (What I’ve learned hosting Meetups in 2017 — and why I’m looking forward to 2018.) As 2017 comes to an end, it’s time to reflect on the non-profit work …

c语言编程电影院票务系统,C++课程设计----电影院售票系统

大学期间的C课设,难忘的时刻仍留于脑海。总结:总体设计满意,功能齐全,但缺点是主函数过于“庞大”,应该用函数实现,其实留有遗憾才能进步!呵呵。。。//头文件:#includeusing namespa…

学习笔记12

SQL SERVER提供了两种索引:聚集索引和非聚集索引。 其中聚集索引表示表中存储的数据按照索引的顺序存储,检索效率比非聚集索引高,但对数据更新影响较大。 非聚集索引表示数据存储在一个地方,索引存储在另一个地方,索引…

WannaCry 不相信眼泪 它需要你的安全防御与响应能力

在过去的几天里,WannaCry恶意软件及其变体影响了全球数百家组织与机构。 尽管每个组织都会因各种各样的原因没能及时对存在漏洞的系统做更新保护,或者担心更新实时系统的风险,两个月对于任何组织来用于采取措施保证系统安全也并不算太短的时间…