当前位置: 首页 > news >正文

MySQL——MySQL引擎层BufferPool工作过程原理

目录

    • 一、MySQL引擎层BufferPool工作过程图解
    • 二、MySQL引擎层BufferPool工作过程原理

一、MySQL引擎层BufferPool工作过程图解

  • 图解

    在这里插入图片描述

二、MySQL引擎层BufferPool工作过程原理

  • 首先关闭自动提交,执行一条修改语句。

    SET AUTOCOMMIT =0;
    update employees set name='张三' where id=1:
    
  • 客户端连接mysql服务层,再由服务层的执行器去调用innoDB引擎,首先会去innoDB引擎的BufferPool中查看id=1的数据有没有在BufferPool中进行缓存,

  • 如果有,则直接更新BufferPool中的缓存,

  • 如果没有,则去磁盘.idb文件中去加载id=1的数据,根据索引找到id=1的数据页,找到数据页后,把整个数据页缓存在BufferPool中,从而针对id=1的数据进行修改。把修改之前的数据存放到Undolog中来进行备份,为后续的数据回滚、事务隔离相关的操作。
    在这里插入图片描述

  • 更新完数据后,BufferPool中的页成为脏页,因为此时BufferPool中id=1的数据跟磁盘文件id=1的数据它们的name属性的值已经不一致了。
    在这里插入图片描述

  • 此时需要将脏页的数据进行提交,同步到磁盘文件中,然后才会恢复到正常页。

    COMMIT;
    

    在这里插入图片描述

http://www.xdnf.cn/news/1286407.html

相关文章:

  • 3 Abp 核心框架(Core Framework)
  • 京东方 DV133FHM-NN1 FHD13.3寸 工业液晶模组技术档案
  • 在Colab上复现LoRA相关论文实验的完整指南
  • 跨设备开发不再难:HarmonyOS 分布式任务管理应用全解析
  • 人机交互:连接人类与数字世界的桥梁
  • 基于柔性管控终端的新能源汽车充电站有序充电系统设计与实现
  • Docker容器部署论坛和网上商城(小白的“升级打怪”成长之路)
  • 1 JQ6500语音播报模块详解(STM32)
  • 电机极数2极、4极、6极、8极的区别
  • 电子电路原理学习笔记---第5章特殊用途二极管---第2天
  • PaddlePaddle 模型训练技巧
  • Myqsl建立库表练习
  • Spark on K8s 在vivo大数据平台的混部实战
  • Go 语言 里 `var`、`make`、`new`、`:=` 的区别
  • 深入解析ArrayList与LinkedList的区别:如何正确选择?
  • 游戏中角色持枪:玩家操控角色,角色转向时枪也要转向
  • Java集合学习之forEach()遍历方法的底层原理
  • 【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道
  • 人工智能+虚拟仿真,助推医学检查技术理论与实践结合
  • Linux环境gitlab多种部署方式及具体使用
  • [论文阅读] (41)JISA24 物联网环境下基于少样本学习的攻击流量分类
  • 完整多端口 Nginx Docker部署 + GitLab Runner注册及标签使用指南
  • 使用 NetBird 创建安全的私有网络,简化远程连接!
  • 【论文阅读】从表面肌电信号中提取神经信息用于上肢假肢控制:新兴途径与挑战
  • 终端安全检测和防御技术总结
  • Java数据结构之ArrayList
  • [激光原理与应用-256]:理论 - 几何光学 - CMOS与CCD传感器成像原理比较
  • 卫生间装修防水怎么做合适?
  • 激光干涉法在碳化硅衬底 TTV 厚度测量中的精度提升策略
  • 高性能web服务器Tomcat