当前位置: 首页 > 编程日记 > 正文

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

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

相关文章:

UI设计要做什么,UI设计培训都要学什么

UI设计要做什么,UI设计培训都要学什么?相信有很多人都对这个问题比较感兴趣,近几年,UI设计被越来越多的人关注,行业薪资水平也是一路飙升,很多人都在准备学习UI设计,那么具体的内容,下面我们来…

[置顶] 如何搭建一个 Data Guard 环境

在Blog里零零散散的讲了一些DB 维护的东西,比较杂,也比较散。 这里就Oracle Data Guard 这块做一个小结。 主要是流程上的东西。 做个参考,以后装DG,照这个流程走就ok了。 一. 服务器设置1.1 硬盘的规划根据自己的业务量来规划硬…

技术图文:如何进行代码的重构?以封装 BigOne API 为例

背景 自从把“量化交易”作为自己精进的技术方向之后,我做了一些准备工作。 比如: 1. 爬取交易所的公告,根据公告的信息来研判数字货币的短期走势。 这里面有一个“流动性溢价”的概念,等后面我会结合一些例子跟大家聊聊这块的…

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

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

大数据就业前景怎么样?需要学会哪些技术?

智能时代的来临,我们日常生活中的很多技术都可以用大数据来实现,大数据开发行业做为IT行业中的一类更是前景无限。所以很多人想转行做大数据开发。那么现在大数据就业前景怎么样?需要学会哪些技术? 大数据就业前景怎么样?需要学会哪些技术?大数据行业…

技术图文:如何利用 C# 实现 误差反向传播 学习规则?

背景 我们在 如何利用 C# 对神经网络模型进行抽象? 中完成了神经网络的抽象结构: 三个接口:激活函数、有监督学习、无监督学习 三个抽象类:神经元、网络层、网络拓扑 我们在 如何利用 C# 实现神经网络的感知器模型? …

SQL注入漏洞全接触--入门篇

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使…

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

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

小白阶段如何学习Web前端知识

学会了UI设计技术,接下来的计划就是要找工作了,UI设计在面试环节的自我介绍很重要,有时候一分钟的自我介绍已经足够让HR判断出你适不适合他们公司,那做为一名UI设计师面试时如何自我介绍呢?来看看下面的详细介绍。 UI设计师面试时…

康泰瑞影推高性能3D/4D超声可视化方案

本文讲的是康泰瑞影推高性能3D/4D超声可视化方案,康泰瑞影(ContextVision)推出的业界首款超声实时3D立体图像增强产品已经配备全新的影像可视化功能。所推出的产品REALiCE?将提供逼真的3D超声影像,提高了诊断质量。 REALiCE软件将GOPiCE?自适应3D/4D立体图像增强产…

New Video Game Controlled By Kissing

unassimilatible writes "Artist Hye Yeon Nam has put her video game where her mouth is — literally — with the creation of a new bowling game thats controlled only by passionate (and awkward) French kissing. The Kiss Controller, as its called, has two…

资料分享:数学建模资料分享 -- 图论部分

背景 今天上午,在教六第一阶梯教室为数学建模俱乐部的同学们分享了有关图论的基本知识和应用。 课后,为同学们留了一个算法实现的小练习,大家可以先做一下。在本图文的末尾处,我把上课的资料以及代码分享出来,供大家…

免费学习编程的10个好工具

互联网时代的快速发展,很多人都在学习编程技术,小编今天为大家推荐的就是学习编程技术会用到的一些编程工具,免费学习编程的10个好工具!希望能够帮助到正在学习的小伙伴们。 免费学习编程的10个好工具: 1. Code/Racer Code/Racer是…

【ZT】我家宝宝不会哭----分享在美国养孩子的妈妈经(必看)

我在美国生了两个孩子,生育前后都有培训班,家庭医生每次洗脑让我受益匪浅,我的两个宝宝在婴儿时期乖巧得好像家里没有小婴儿,我甚至疑心她们会不会哭?如今外婆常拿这句傻话笑我。回国后看到朋友或邻居们被小祖宗折磨得…

资料分享:数学建模资料分享 -- 神经网络部分

背景 周日的时候,为数学建模俱乐部的同学们进行了一场有关人工神经网络方面的分享。虽然在这个方面有一些积累,但过于零散,所以拿了一堆文件拼凑成整体的内容。 幸亏自己有分享的习惯,学会一些知识就写下来,这次就是…

配置文件的简单使用

常见的配置文件格式:1.properties里面内容的格式 keyvalue2.xml后期详细解释若我们的配置文件为properties,并且放在src目录下.我们可以通过 ResourceBundle工具快速获取里面的配置信息使用步骤:1.获取ResourceBundle 对象:static ResourceBundle getBundle("文件名称不带…

软件测试工程师如何提升自己?

在软件测试行业,尤其是今年疫情的发生,想要在这个行业站稳脚跟,有着扎实的技术是非常重要的,今天小编要为大家介绍的内容就是软件测试工程师如何提升自己?希望能够给大家带来帮助。 软件测试工程师如何提升自己?熟练掌握IT核心技…

一些简单的SQL语句

1.创建数据库:create database database-name 2.删除数据库:delete database database-name 3.选择:select * from table where ... 4.插入:insert into table(field1,field2) values(value1,value2) 5.更新:update table set fie…

技术图文:进一步完善自动化交易系统 - 01

背景 最初,我们介绍了 如何利用网格交易法对数字资产进行交易。只要价格存在波动,通过这种方法就能赚取利润。 接着,我们介绍了 如何通过三角套利来交易数字资产。只要三种数字资产,两两存在交易对,就可以建立套利的…

String、StringBuffer与StringBuilder之间区别 (转载)

最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什…

女生可以学习Web前端吗?

随着时代的不断发展,女性独立意识越来越高,在职场这方面,很多岗位都有了女性的存在,尤其是IT互联网行业,广阔的发展前景和优厚的福利待遇吸引了很多女性小伙伴想要学习Web前端开发,那么女生可以学习Web前端…

adobe就不敢把融合做得更好一点?

体验了一把flash bulider4 和 flash cs5的结合。 之前说得挺牛B的协同开发也不过如此。还以为会给开发者更多的便利。。。 其也就是让建立一个有外链类的mc的时候,能自动为你在bulider里面提示新建一个类而已。 在flash bulider(flex bulider)中依然不认识flash中的…

apache开启虚拟主机 并进行配置

sudo vi /etc/apache2/httpd.conf 进入 apache 配置文件 在配置文件中搜索 Virtual hosts 如图 把前面的#删掉 #为注释 sudo vi /etc/apache2/extra/httpd-vhosts.conf 打开虚拟主机配置文件对下面的一下代码进行复制并粘贴在下方并更改里面的一些内容 DocumentRoot …

技术图文:进一步完善自动化交易系统 - 02

背景 自己的自动化交易系统起初只有网格交易法一个版本:如何利用网格交易法对数字资产进行交易。后面,加入了ONE、USDT、EOS的三角套利版本:如何通过三角套利来交易数字资产。接着,发现三角套利的个别订单在未全部成交的情况下被…

女士做软件测试的利弊有哪些?

社会在不断的进步,在如今的智能时代,女性独立意识越来越高,很多女性都把重心放在职场上,IT行业出现了越来越多的女性职业者,尤其是软件测试这一块,那么女士做软件测试的利弊有哪些呢?来看看下面的详细介绍…

刻意练习:Python基础 -- Task01. 变量、运算符与数据类型

背景 我们准备利用17天时间,将 Python 基础的刻意练习分为如下任务: Task01:变量、运算符与数据类型(1day)Task02:条件与循环(1day)Task03:列表与元组(2day…

linux ramdisk与tmpfs的深入分析

一)ramdisk 1)概念 ramdisk就是指使用一部分内存空间来模拟硬盘分区,也就是说ramdisk是一个块设备,要用mkfs格式化,才能真正使用它. .ramdisk在内核2.0/2.2版本就已经支持. .ramdisk设备是它不允许重新声明它的内存空间,所以ramdisk块通常会一直占用空间的内存直到系统重启. .r…

Unique Paths II

注意一个容易犯的错误&#xff1a;判断obstacleGrid是否为1时&#xff0c;else那部分不能少。因为如果不加&#xff0c;就会默认把那些值设置为0。 class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int height ob…

零基础java培训如何规划学习路线

学习java的同学越来越多&#xff0c;很多小伙伴都想知道零基础如何学习java?如何安排学习路线&#xff0c;零基础java培训如何规划学习路线?那么针对以上问题&#xff0c;今天小编特意分享这篇Java学习指南&#xff0c;希望对那些想学Java&#xff0c;想零基础快速入门Java有…

CCIE-MPLS基础篇-实验手册

又一部前期JUSTECH&#xff08;南京捷式泰&#xff09;工程师职业发展系列丛书完整拷贝。 MPLS&#xff08;Multi-Protocol Label Switching&#xff09; 目录 1&#xff1a;MPLS 基础实验.... 3 1.1实验拓扑... 3 1.2实验需求&#xff1a;... 3 1.3实验步骤... 3 1.4校验…