InnoDB引擎的内存结构
InnoDB擅长处理事务,具有自动崩溃恢复的特性
架构图:

由4部分组成:
1.Buffer Pool:缓冲池,缓存表数据和索引数据,减少磁盘I/O操作,提升效率
2.change Buffer:写缓冲区,针对二级索引页的更新优化措施
3.Log Buffer:日志缓冲区,缓存写入磁盘是log文件的数据,用来优化每次更新操作之后都要写入redo log产生的磁盘I/O
4.Hash index:自适应哈希索引
什么是Buffer Pool
Buffer Pool:有缓存页(Page)和控制块组成
1.缓存页:InnoDB引擎以页为单位,作为磁盘和内存的交互,一个页默认大小16KB
Buffer Pool除了 索引页和数据页,还有undo页,插入缓存页,锁信息,自适应哈希索引页。
2.控制块:存储着缓存页的表空间信息,数据页编号,与缓存页在Buffer Pool的地址信息
3.默认大小是128M,以Page页为单位,Page页16KB,控制块一般为数据页的5%

如何判断一个页是否在BP中存储? 在MySQL中有一个Hash表数据结构,它使用表空间号+数据页编号,作为一个key,value是缓存页对应的控制块。当我们需要访问某个 页的数据时,先从Hash表中根据表空间号+页号,查看是否有对应的缓存页。
Buffer Pool中如何管理Page
Page页分类:在BP的底层采用的是链表数据结构管理Page,根据状态分为3种类型:
-
free Page:空闲的页,未被使用的页
-
clean Page: 被使用的页,但数据没有修改过
-
dirty Page:脏页,被使用过的页,并且数据被修改了,缓存页中的数据与磁盘数据不一致
上面说的三种类型,InnoDB采用三种链表结构进行维护和管理
-
free list:表示空闲缓冲区,管理free Page

-
flush list:表示是需要刷新到磁盘的缓冲区,管理脏页,内部页按照修改时间排序

-
lru list:表示正在使用的缓冲区,管理被使用的页以及脏页,该缓冲区以 midpoint 为基点,前面的链表称为new 列表区,存放经常被访问的数据,占63%,后面的链表称为old列表区,存放的是使用较少的数据占37%
注意:脏页在fiush链表和LRU链表中互不影响,LRU链表负责管理page的可用性和释放,而fush list负责管理脏页的刷盘操作。
相关文章:
InnoDB引擎的内存结构
InnoDB擅长处理事务,具有自动崩溃恢复的特性 架构图: 由4部分组成: 1.Buffer Pool:缓冲池,缓存表数据和索引数据,减少磁盘I/O操作,提升效率 2.change Buffer:写缓冲区,…...
Y3地图制作1:水果缤纷乐、密室逃脱
文章目录 一、水果缤纷乐1.1 游戏设计1.1.1 项目解析1.1.2 项目优化1.1.3 功能拆分 1.2 场景制作1.2.1 场景需求1.2.2 创建主镜头、绘制草稿,构思文案和情景1.2.3 构建场景地图1.2.4 光源与氛围设置 1.3 游戏初始化1.3.1 物编、UI预设置1.3.2 游戏初始化1.3.2 玩家初…...
ESP32_H2(IDF)学习系列-ADC模数转换(连续转换)
一、简介(节选手册) 1 概述 ESP32-H2 搭载了以下模拟外设: • 一个 12 位逐次逼近型模拟数字转换器 (SAR ADC),用于测量最多来自 5 个管脚上的模拟信号。 • 一个温度传感器,用于测量及监测芯片内部温度。 2 SAR ADC 2…...
如何通过TikTok成功引流到独立站
随着短视频平台的迅猛发展,TikTok已成为全球最受欢迎的社交媒体之一,尤其是在年轻用户群体中更是势不可挡。如果你是一个独立站(如电商网站、博客、个人品牌站等)的运营者,那么如何通过TikTok引流到独立站已经成为一个…...
生成签名文件 .keystore
打开java sdk 到bin目录(D:\JDK\Java\jdk1.8.0_202\bin),打开dos窗口执行以下命令: 命令行输入: 1、生成签名文件:(-alias 别名 validity 有效期 9125 天) keytool -genkeypair -v…...
Mono里运行C#脚本3—mono_jit_init
前面已经介绍了配置参数的读取,这样就可以把一些特殊的配置读取进来,完成了用户配置阶段的参数,接着下来就需要进行大工程的建造了。 为什么这样说呢,因为需要解释并执行C#编译的受托管的代码,相当于就是建立一个C#代码运行的虚拟机,而这个虚拟机还是很复杂的,不但要支…...
龙迅#LT6911C适用于HDMI转MIPI/LVDS产品应用,分辨率高达4K30HZ,内置程序,支持KEY(HDCP)!
1. 描述 LT6911C 是一款高性能 HDMI1.4/DP 转 MIPIDSI/CSI/LVDS 芯片,适用于 VR/智能手机/显示应用。 对于 MIPIDSI/CSI 输出,LT6911C具有可配置的单端口或双端口 MIPIDSI/CSI,具有 1 个高速时钟通道和 1~4 个高速数据通道,运行…...
阿里云虚拟主机ecs镜像如何转移到本地virtualbox上
导出阿里云 ECS 镜像 创建快照:登录阿里云 ECS 控制台,找到对应的 ECS 实例,创建一个快照,等待快照创建完成。创建自定义镜像:基于创建好的快照,创建一个自定义镜像,填写镜像名称和描述等信息。导出镜像:镜像创建完成后,点击 “导出镜像”,并授权访问,将镜像导出到阿…...
虚拟机桥接模式
主机Win10,虚拟机xp 1.虚拟机设置中选择桥接模式 2.在虚拟机菜单:编辑>虚拟机网络编辑,点击“更改设置”,可以看到三个网卡,这三个网卡分别对应不同的网络共享模式。桥接模式须使用VMnet0,如果没看到这个网卡&…...
酷睿i7和i5哪个好?i5和i7的区别介绍
在英特尔酷睿处理器家族中,i7与i5作为面向不同用户群体的主流产品,各自承载着不同的性能定位与使用价值。在面对“酷睿i7和i5哪个好”的问题时,答案并非一概而论,而是取决于具体的应用需求、预算考量以及对性能与效率的期待。本文…...
STM32 高级 谈一下IPV4/默认网关/子网掩码/DNS服务器/MAC
首先可以通过 winr->输入cmd->输入ipconfig 命令可以查看计算机的各种地址 IPV4:是互联网协议第 4 版(Internet Protocol version 4)所使用的地址。它是一个 32 位的二进制数字,通常被分为 4 个 8 位的部分ÿ…...
Pytorch | 利用FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
Pytorch | 利用FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集FGSM介绍FGSM代码实现FGSM算法实现攻击效果 代码汇总fgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对CIFAR10进行分类 Pytorch | 从零构建Vgg…...
消息队列(二)消息队列的高可用原理
高可用的定义 上一篇文章提过,引入了消息队列的优势在于解耦、并发和缓冲,代价就是让程序的复杂性上升,引入了消息队列后,就需要考虑消息队列对于系统整体的影响,此时消息队列的稳定和健壮就是重中之重。也就是消息队…...
大模型-使用Ollama+Dify在本地搭建一个专属于自己的聊天助手与知识库
大模型-使用OllamaDify在本地搭建一个专属于自己的知识库 1、本地安装Dify2、本地安装Ollama并解决跨越问题3、使用Dify搭建聊天助手4、使用Dify搭建本地知识库 1、本地安装Dify 参考往期博客:https://guoqingru.blog.csdn.net/article/details/144683767 2、本地…...
深入理解索引的最左匹配原则:底层逻辑解析
1. 什么是最左匹配原则? 最左匹配原则是指在使用复合索引时,查询条件从左到右依次匹配索引列的顺序,一旦中间有列未匹配,索引将停止工作或部分失效。 1.1 举例说明 假设我们有一张用户表(users)…...
微服务——数据管理与一致性
1、在微服务架构中,每个微服务都有自己的数据库,这种设计有什么优点和挑战? 优点挑战服务自治:每个微服务可独立选择适合自己的数据库类型。数据一致性:跨微服务的事务难以保证强一致性。故障隔离:一个微服…...
Docker之技术架构【八大架构演进之路】
Docker之技术架构 1. 八大架构演进之路1.1 单机架构1.2 应用数据分离架构1.3 应用服务集群架构1.4 读写分离架构1.5 冷热分离架构1.6 垂直分库架构1.7 微服务架构1.8 容器编排架构(docker出现) 2. 一个互联网实战架构 本章意在让大家了解Docker出现的历史…...
CSP-X2024山东小学组T4:刷题
题目链接 CSP-X2024山东小学组T4:刷题 题目描述 比赛之路多艰,做题方得提升。努力刷题的人在比赛中往往能取得很好的成绩,小红就是这样的人。 为了继续提升自己的编程实力,小红整理了一份刷题题单,并选中了题单中的…...
【Windows指令】Windows常用快捷指令
一.查找系统上所有可用的 .cpl 文件 要查找系统上所有可用的 .cpl 文件,你可以浏览到以下目录: C:\Windows\System32在“System32”文件夹中搜索扩展名为 .cpl 的文件,将列出所有可用的控制面板小程序。 ❗某些 .cpl 文件可能仅存在于特定的…...
NLP中的神经网络基础
一:多层感知器模型 1:感知器 解释一下,为什么写成 wxb>0 ,其实原本是 wx > t ,t就是阈值,超过这个阈值fx就为1,现在把t放在左边。 在感知器里面涉及到两个问题: 第一个,特征提…...
OpenClaw异常处理:Qwen2.5-VL-7B任务中断自动恢复方案
OpenClaw异常处理:Qwen2.5-VL-7B任务中断自动恢复方案 1. 当自动化遇上不稳定:我的深夜崩溃实录 凌晨2点17分,我的显示器突然亮起——OpenClaw正在执行的周报生成任务中断了。这个本该在后台安静运行的自动化流程,因为Qwen2.5-V…...
OpenClaw极客玩法:Qwen3.5-9B控制树莓派硬件执行物联网指令
OpenClaw极客玩法:Qwen3.5-9B控制树莓派硬件执行物联网指令 1. 为什么选择OpenClawQwen3.5-9B玩树莓派 去年第一次用语音控制家里的LED灯带时,我还在用IFTTTGoogle Assistant的固定指令组合。直到发现OpenClaw能直接调用本地部署的Qwen3.5-9B模型控制G…...
主流AI命理工具实测:八字紫微梅花六爻避坑指南
1. 当大模型遇上传统命理:AI算命实测背景 最近身边不少科技圈朋友都在讨论用AI工具辅助命理分析:做技术的研究起了八字排盘,产品经理案头放着命理相关资料,连程序员开会间隙都会聊两句卦象。作为长期关注AI应用的从业者࿰…...
突破式4大技术实现99%硬字幕提取准确率:video-subtitle-extractor全解析
突破式4大技术实现99%硬字幕提取准确率:video-subtitle-extractor全解析 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕…...
TranslucentTB:Windows任务栏个性化的轻量高效解决方案
TranslucentTB:Windows任务栏个性化的轻量高效解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 在当今数字化办公与娱…...
SenseVoice实战:搭建智能客服语音质检系统,自动检测咳嗽清嗓等事件
SenseVoice实战:搭建智能客服语音质检系统,自动检测咳嗽清嗓等事件 在客服中心的质量检查工作中,质检人员每天需要监听大量通话录音,手动标记出咳嗽、清嗓等非语音事件。传统人工质检方式不仅效率低下,而且容易因疲劳…...
零基础玩转AI春联生成:手把手教你Windows WSL2部署达摩院春联模型
零基础玩转AI春联生成:手把手教你Windows WSL2部署达摩院春联模型 春节将至,家家户户都开始准备贴春联。但每年想一副既传统又有新意的对联可不容易——要么是市场上买的千篇一律,要么自己绞尽脑汁也想不出好句子。今天,我将带你…...
快速上手:CYBER-VISION零号协议Node.js后端服务集成指南
快速上手:CYBER-VISION零号协议Node.js后端服务集成指南 你是不是已经部署好了CYBER-VISION零号协议模型,看着那个命令行界面,心里琢磨着:“这玩意儿怎么才能接到我的Web应用里去?” 别急,这正是我们今天要…...
从理论到实践:深度解析永磁同步电机内模控制的实现与调优
1. 永磁同步电机控制技术概述 第一次接触永磁同步电机(PMSM)控制时,我被各种控制策略搞得晕头转向。直到真正在产线上调试电机时才发现,控制算法直接决定了电机的"性格"——有的响应迅猛但容易"暴躁"…...
Wireshark过滤规则、OSI模型与TCP三次握手详解
本文内容有以下三个部分: wireshark过滤规则osi模型简述tcp三次握手 一、wireshark过滤规则 wireshark只是一个抓包工具,用其他抓包工具同样能够分析tcp三次握手协议。例如,Sniffmaster是一款全平台抓包工具,支持HTTPS、TCP和UDP协…...
