Innodb Buffer Pool缓存机制(一)一条sql的执行过程

思维导图

一条sql的执行过程-思维导图
石墨文档:https://shimo.im/mindmaps/NJkbnZV0ePINXzkR

一、SQL的执行

sql语句执行过程
执行过程:

  1. 加载缓存数据,加载id为1的记录所在的整页数据(相当于索引树的一个结点,16KB);
  2. 写入更新数据的旧值到undo日志中,方便回滚;
  3. 执行器更新BufferPool缓存池中的内存数据;
  4. 写入redo日志,将操作结果写入Redo Log Buffer缓冲区;
  5. 准备提交事务,redo日志写入磁盘中;
  6. 准备提交事务,将结果写入binlog日志,binlog日志写入磁盘,binlog主要用来恢复数据库磁盘里的数据;
  7. 写入commit标记到redo日志文件里,提交事务完成,该标记为了保证事务提交后的redo与binlog数据一致;
  8. 将Buffer Pool缓冲池中修改后的数据随机写入磁盘,以Page为单位写入,执行完后,磁盘中的name=zhuge666;

1.1 redo日志作用

  如果事务提交成功,buffer pool里的数据还没吸入磁盘,此时系统宕机,可以用redo日志里的数据恢复buffer pool里的缓存数据,再重新写入磁盘;

1.2 undo日志作用

  当事务更新完数据后,执行其它操作发生错误,导致事务执行失败,MySQL会将undo日志里最新的旧值回滚,保证数据一致性;
  undo日志更详细介绍的介绍在:1.3 MVCC

1.3 MVCC

参考这篇文章:MVCC是什么?有何用?原理是什么?

1.4 为什么Mysql不能直接更新磁盘上的数据而且设置这么一套复杂的机制来执行SQL了?

  因为来一个请求就直接对磁盘文件进行随机读写,然后更新磁盘文件里的数据性能相当查;
  因为磁盘随机读写的性能是相当差的,所以直接更新磁盘文件是不能让数据库抗住高并发请求的。

  MySQL这套机制看起来复杂,但他保证每个请求都是更新内存(BufferPool),然后顺序写日志文件,同时还能保证各种异常情况下的数据一致性;

  更新内存的性能 和顺序写磁盘上的日志文件的性能远比更新磁盘的性能高的多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/335055.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用C/C++ API接口操作 Zookeeper 数据

ZooKeeper 支持 Java 和 C 的API接口。本文将介绍使用 C/C 语言客户端库的编译安装和使用入门。 一、编译安装 PS:就在上一篇文章还觉得安装和配置 jdk 、maven 麻烦,所以当时选择 apache-zookeeper-[version]-bin.tar.gz 的版本。然而,本文…

微信小程序-常用的视图容器类组件

一.组件分类 小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。 官方把小程序的组件分为了9大类: (1) 视图容器 (2) 基础内容 (3) 表单组件 (4)导航组件 (5) 媒体组件 (6) map 地图组件 (7) canvas 画布组件 (8) 开放能力 (9) 无…

Linux:top命令的每一列的具体含义

Linux:top命令的每一列的具体含义 文章目录 Linux:top命令的每一列的具体含义图片显示top命令的概念语法显示字段的含义顶部字段第二行第三行第四行第五行每列字段的含义 图片显示 top命令的概念 top命令上一个常用的Linux命令行工具,用于实…

Gopher的Rust第一课:第一个Rust程序

经过上一章[1]的学习,我想现在你已经成功安装好一个Rust开发环境了,是时候撸起袖子开始写Rust代码了! 程序员这个历史并不算悠久的行当,却有着一个历史悠久的传统,那就是每种编程语言都将一个名为“hello, world”的示…

计算机图形学入门02:线性代数基础

1.向量(Vetors) 向量表示一个方向,还能表示长度(向量的摸)。一般使用单位向量表示方向。 向量加减:平行四边形法则、三角形法则。比卡尔坐标系描述向量,坐标直接相加。 1.1向量点乘(…

初识STM32单片机-TIM定时器

初识STM32单片机-TIM定时器 一、定时器概述二、定时器类型2.1 基本定时器(TIM6和TIM7)2.2 通用定时器(TIM2、TIM3、TIM4和TIM5)2.3 高级定时器(TIM1和TIM8) 三、定时中断基本结构和时基单元工作时序3.1 定时器基本结构3.2 预分频器时序3.3 计数器时序3.3.1 计数器有无预装时序(…

N的阶乘(高精度)

目录 题目描述 输入格式 输出格式 样例输入 样例输出 思路 参考代码 题目描述 输入正整数n,输出n! 输入格式 一个正整数n,n 3000 输出格式 输出n! 样例输入 3 样例输出 9 思路 主要就是高精度乘法的模版&#x…

“大数据建模、分析、挖掘技术应用研修班”的通知!

随着2015年9月国务院发布了《关于印发促进大数据发展行动纲要的通知》,各类型数据呈现出了指数级增长,数据成了每个组织的命脉。今天所产生的数据比过去几年所产生的数据大好几个数量级,企业有了能够轻松访问和分析数据以提高性能的新机会&am…

平方回文数-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第73讲。 平方回文数&#…

低价焕新用户体验生态 京东向上增长通道宽了

5月16日,京东对外发布了其2024年第一季度财报。整体来看,相当不错,营收与净利润双双超预期。一季度,京东集团收入达到2,600亿元人民币(约360亿美元),同比增长7.0%,尤其是在持续补贴和…

实现UI显示在最上面的功能

同学们肯定遇到过UI被遮挡的情况,那如何让UI显示在最前面呢,先看效果 原理:UI的排序方式是和unityHierarchy窗口的层级顺序有关的,排序在下就越后显示,所以按照这个理论,当我们鼠标指到UI的时候把层级设置到最下层就好…

IOPS:存储芯片的“心跳”性能

IOPS,即每秒输入/输出操作数(Input/Output Operations Per Second),是一个用于计算机存储设备(如硬盘,SD Nand 、eMMC等)性能测试的量测方式,是评估存储系统性能的一个关键指标。 常见IOPS量测方…

制作Dcoker镜像

文章目录 一、Docker构建镜像的原理1、镜像分层原理2、Docker的镜像结构3、分层存储原理4、构建命令与层的关系5、最终镜像的创建 二、docker commit 构建镜像1、使用场景2、手动制作yum版的nginx镜像2.1、启动一个centos容器,安装好常用的软件以及nginx2.2、关闭ng…

如何评价GPT-4o

一:简介 GPT-4o作为OpenAI的又一里程碑式技术成果,展现了显著的技术进步和创新。以下是对GPT-4o的评价,包括与先前版本的对比分析、技术能力以及个人感受。 1、版本间的对比分析 相较于先前的GPT系列模型,GPT-4o在多个方…

Redis解决缓存一致性问题

文章目录 ☃️概述☃️数据库和缓存不一致采用什么方案☃️代码实现☃️其他 ☃️概述 由于我们的 缓存的数据源来自于数据库, 而数据库的 数据是会发生变化的, 因此,如果当数据库中 数据发生变化,而缓存却没有同步, 此时就会有 一致性问题存在, 其后果是: 用户使用缓存中的过…

Python读取Excel表格文件并绘制多列数据的曲线图

本文介绍基于Python语言,读取Excel表格数据,并基于给定的行数范围内的指定列数据,绘制多条曲线图,并动态调整图片长度的方法。 首先,我们来明确一下本文的需求。现有一个.csv格式的Excel表格文件,其第一列为…

将本地项目上传到 gitee 仓库

1、创建 gitee 仓库 到 gitee 官网,新建仓库 配置新建仓库 完成仓库的创建 项目上传到仓库 上传项目需要安装git git官方下载地址:git下载地址 安装完成,前往本地项目所在文件夹,右击选择 Git Bash Here 刚下载完成需要配置G…

【全开源】Java养老护理助浴陪诊小程序医院陪护陪诊小程序APP源码

打造智慧养老服务新篇章 一、引言:养老护理的数字化转型 随着老龄化社会的到来,养老护理需求日益凸显。为了更好地满足老年人及其家庭的需求,我们推出了养老护理助浴陪诊小程序系统源码。该系统源码旨在通过数字化技术,优化养老…

语音控制系统的安全挑战与防御策略(上)

语音控制系统(VCS)提供了便捷的用户界面,涉及智能家居、自动驾驶汽车、智能客服等众多应用场景,已成为现代智能设备不可或缺的一部分。其市场规模预计到2023年达到70亿美元,这种扩张带来了重大的安全挑战,如…

走进智慧仓储:3D可视化工厂园区革新物流新纪元

在快节奏的现代生活中,物流仓储行业扮演着至关重要的角色。随着科技的飞速发展,传统仓储模式正面临一场前所未有的变革。今天,就让我们一起看看3D可视化技术如何为物流行业带来前所未有的便利与效率。 什么是3D可视化工厂园区? 3…