MySQL InnoDB 缓存池(Buffer Pool)详解:原理、结构与链表管理

说一说Mysql缓存池BufferPool基本原理 前言: 最近面试了一些个5年8年的程序员,普遍发现了一个问题,底层的基本原理知道的少之又少,只停留在CRUD。其实还是很建议每一位同学关注一些底层的实现原理,当然不是要自己再造轮子,而是学习别人想法的同时当你了解他的底层的实现原理,在编写代码中才能把你的代码写的更优更健壮。 废话到此结束 开始正题~~~~ 一、为什么要有缓存池 我们在使用sql查询的时候,都应该会发现一个问题,第一次对于数据查询的时候(数据量w级别无索引),查询速度可能在秒级别,而再进行第二次第三次查询的时... 阅读详情

MySQL InnoDB 缓存池(Buffer Pool)详解:原理、结构与链表管理

目录

  1. 为什么要缓存池
  2. 缓存池的基本原理
  3. 缓存池里都有什么
  4. 缓存页与控制块
  5. 缓存池管理:三条链表
  6. 读加速:哈希查找与命中率
  7. 写加速:脏页与刷盘
  8. LRU 的进一步优化(扩展)
  9. 小结

一、为什么要缓存池?

缓存池(Buffer Pool) 是 InnoDB 在内存中划出的一片区域,用来存放页(Page),本质上是对数据页的缓存。

  • InnoDB 是磁盘型存储引擎,数据以页为单位与磁盘打交道。
  • CPU 与磁盘之间存在巨大的速度差;若每次访问都读盘,数据库性能会被磁盘延迟严重拖累。
  • 因此引入缓存池:用内存的高速尽量弥补磁盘的慢,让热数据常驻内存,降低对业务延迟的影响。

一句话:缓存池就是用内存换时间、缓解磁盘瓶颈的关键区域。


二、缓存池的基本原理

2.1 读操作

  1. 需要读取某一页时,若该页尚不在内存,则从磁盘读入,并放入缓存池。
  2. 再次访问同一页时,优先判断该页是否已在缓存池中,命中则不必再读盘。

2.2 写操作

  1. 对数据页的修改,首先在缓存池中的页副本上进行。
  2. 修改不会立刻全部写回磁盘,而是按一定策略、一定频率通过刷盘机制(与 Checkpoint 等机制配合)落盘。
  3. 整体上,读写路径都尽量围绕缓存池展开,而不是对磁盘做频繁的同步随机写。

扩展:Redo Log 保证崩溃恢复;数据页异步刷盘是吞吐与持久化之间的折中,下文「脏页」一节会呼应这一点。

2.3 缓存池在内存中的形态

  • Buffer Pool 是一段连续的内存空间(逻辑上连续;实际可能按 Chunk 向 OS 申请)。
  • InnoDB 以页为单位管理这片空间。

三、缓存池里都有什么?

笔记中的结构图将 Buffer Pool 内的信息分为多类,常见归纳如下:

类型说明
数据页表数据所在页
索引页B+ 树等索引结构页
插入缓冲 / Change Buffer对二级索引的变更在对应索引页未进缓存时,可先缓冲合并(MySQL 官方文档中多称 Change Buffer,早期资料常写「插入缓冲」)
自适应哈希索引(AHI)InnoDB 对部分热点查询路径自动建立的哈希加速结构
锁信息行锁等相关的内存结构信息
数据字典信息表结构、元数据等

实务要点:在绝大多数实例里,数据页 + 索引页占 Buffer Pool 的绝大部分空间;其余为辅助结构与控制开销。

接着的自然问题:这么多页,InnoDB 如何管理?——答案是:为每个缓存页维护「控制信息」,即 缓存页控制块(Buffer Control Block)。


四、缓存页与控制块

4.1 控制块里有什么?

为管理缓存页,InnoDB 为每个页建立控制块,典型包含:

  • 表空间 ID(Tablespace ID)
  • 页号(Page Number)
  • 该页在 Buffer Pool 中的地址
  • 锁相关信息
  • LSN(与重做日志、刷盘顺序相关)等信息
  • 其它控制字段

4.2 控制块与缓存页的布局关系

  • 每个控制块与每个缓存页 一一对应。
  • 在 Buffer Pool 的内存布局上,常见描述为:前部存放控制块,后部存放真正的缓存页,中间可能存在无法凑齐「完整控制块 + 完整页」的间隙,称为碎片空间。

Buffer Pool 内存布局(示意)

控制块区
控制块1…n

碎片空间

缓存页区
缓存页1…n

控制块 1 对应缓存页 1,以此类推(与笔记中的箭头示意一致)。


五、缓存池管理:三条链表

笔记强调:管理缓存池依赖多种链表结构。核心有三类:空闲链表(Free List)、LRU 链表、Flush 链表。

5.1 空闲链表(Free List)

  • 作用:登记当前空闲、可用来装载新读入页的缓存页。
  • 结构:双向链表;每个结点对应一块当前未承载有效磁盘页副本的缓存区域(实现上通过指向「缓存页控制块」再关联到具体缓存页,与笔记描述一致)。
  • 类比(笔记):可类比 G1 等收集器对空闲 Region 的管理思路——用链表把「空闲单元」串起来,按需分配。
  • 启动时:分配好 Buffer Pool 后,会为「控制块 + 缓存页」成对初始化;此时还没有真实磁盘页载入,所有可用于承载数据的页都可视为空闲,全部挂入 Free 链表。
  • 元数据:为维护该链表,另有控制信息(头指针、尾指针、当前结点个数等)。

ctl 指向

Free 双向链表(示意)

结点: ctl / pre / next

...

...

Free 链表控制信息

start 头

end 尾

count 结点个数

控制块

空闲缓存页

5.2 LRU 链表

  • 作用:管理已经读进 Buffer Pool、参与替换决策的页(笔记:管理「已读入」的页)。
  • 典型过程:启动时 LRU 为空;需要读盘时,从 Free 链表取一个空闲承载单元,读入磁盘页后,将该页纳入 LRU 链表管理。
  • 当 Free 链表耗尽、需要为新页腾位置时,会结合 LRU 策略淘汰页,回收的承载单元可重新回到 Free 链表(笔记示意图:Free ↔ LRU 之间有来回箭头)。

5.3 Flush 链表(刷脏链)

  • 作用:管理脏页——已在内存中修改、但尚未刷回磁盘的页。
  • 与 LRU 的关系(重点):
    • 脏页的实体数据仍在 LRU 链表所管理的缓存页中。
    • Flush 链表结点保存的是指向这些脏页的指针/引用,而不是另一份页数据。
    • 第一次对某缓存页做修改导致变脏时,将该页加入 Flush 链表;同页再次修改只更新 LRU 中的页内容,不会在 Flush 链表中重复插入(笔记要点)。

Buffer Pool 逻辑关系(示意)

读入新页

淘汰回收

Flush:脏页子集

Flush 链表指针

Free 空闲页

LRU 已载入页

脏页同时在 LRU 上;Flush 只维护刷盘顺序/指针


六、读加速:哈希查找与命中率

6.1 为什么需要哈希?

若每次判断「某页是否在 Buffer Pool」都线性扫描 LRU,代价过高。InnoDB 使用 哈希表 做近似 O(1) 的查找:

  • Key:表空间号 + 页号(笔记中的「表空间号、页号」)
  • Value:对应缓存页的指针(或能定位到控制块/缓存页的句柄)

6.2 读路径(与笔记一致)

  1. 先按(表空间号,页号)查哈希表。
  2. 命中:直接从 LRU 管理的缓存区读,避免磁盘 I/O。
  3. 未命中:从 Free 链表取空闲结点,从磁盘读入页,加入 LRU,并更新哈希表。

6.3 缓存命中率(笔记中的直观公式)

用访问次数来理解:

[
\text{命中率} \approx \frac{\text{在缓存中命中的访问次数}}{\text{总访问次数 } n}
]

命中率越高,磁盘读越少。生产环境可结合 SHOW GLOBAL STATUS 中的 Innodb_buffer_pool_read_requests / Innodb_buffer_pool_reads 等指标做量化观察。


七、写加速:脏页与刷盘

7.1 写路径(与笔记一致)

  • 写操作先在缓存池中的页上完成,并写 Redo Log(重做日志);从事务持久化角度,日志落盘策略配合 WAL 保证可恢复性。
  • 内存中已修改、尚未刷回数据文件的页叫 脏页(Dirty Page)。
  • 后台线程负责在适当时机把脏页刷到磁盘,避免每次更新都同步写数据页。

7.2 何时刷、按什么顺序刷?(笔记核心)

  • InnoDB 不会在每次修改后立刻把数据页同步刷盘(否则写放大与延迟都会很差)。
  • 脏页通过 Flush 链表组织;刷盘由后台线程异步进行。
  • 顺序:与页的修改时序相关,常按 oldest_modification / oldest_lsn 等(笔记中的 oldest_lsn 表述)组织——越早产生修改的脏页,越优先被刷的倾向,有利于推进检查点、缩小恢复范围(具体实现随版本有细节差异,面试答「按最老修改 LSN 组织刷脏」即可与笔记对齐)。

扩展:innodb_max_dirty_pages_pct、innodb_flush_neighbors(高版本逐步弱化)、innodb_io_capacity 等会影响刷脏节奏,运维时需结合磁盘能力与延迟监控。


八、LRU 的进一步优化(扩展)

笔记指出:InnoDB 对传统 LRU 做了优化,缓解两类问题:

  1. 预读失效:预读进来的页若大量不被使用,不应长期占据热区。
  2. 缓存池污染:如大扫描把大量「一次性」页顶到链表头部,挤出真热数据。

常见机制(与多篇《MySQL 内核》笔记一致,可作延伸阅读):

  • 将 LRU 分为 New Sublist 与 Old Sublist,新读入页插在 MidPoint(Old 区头部),而非整条 LRU 的绝对头部。
  • 参数 innodb_old_blocks_pct、innodb_old_blocks_time 控制冷区比例与「多久后才允许升为热区」。
  • New 区内还有「前 1/4 不挪头」等实现细节,用于降低热点页链表维护开销。

若您需要单独成篇的 LRU 图解长文,可在文末「参考」中拆成第二篇发布。


九、小结

主题要点
为何需要弥合 CPU 与磁盘速度差,用内存缓存页
读写读优先命中缓存;写先改内存页 + Redo,数据页异步刷
组成数据页、索引页为主,另有 Change Buffer、AHI、锁、数据字典等
控制块与缓存页 1:1,记录表空间、页号、地址、LSN 等
Free 链双向链表管理空闲承载页;头尾与计数控制
LRU 链管理已载入页;与 Free、淘汰回收配合
Flush 链指向 LRU 上的脏页;首次变脏入链;按最老修改 LSN 倾向优先刷
查找表空间号+页号 → 哈希 → 快速判断是否命中
LRU 优化缓解预读失效与缓冲池污染(冷热分区 + 参数)
MySQL Buffer Pool四大链表工作原理与实战诊断 Buffer Pool是InnoDB实现高性能数据访问的核心内存结构,其本质并非简单缓存,而是基于16KB物理页的动态虚拟地址映射层。它通过Free、LRU(含young/old双子链)、Flush和Zip Free四条协同链表,完成页加载、热冷分离、脏页调度与压缩页管理。其中LRU链表采用改良双链机制防全表扫描污染,Flush List按LSN排序保障崩溃恢复效率,而Free List作为弹性缓冲直接影响并发响应能力。这些机制共同决定了缓存命中率、IO压力与QPS稳定性,广泛应用于高并发OLTP系统如电商 阅读详情

相关推荐

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2082

MySQL的缓冲池(buffer pool)及 LRU算法

buffer pool 是数据库的一个内存组件,里面缓存了磁盘上的真实数据,Java系统对数据库的增删改操作,主要是这个内存数据结构中的缓存数据执行的。控制块存的是 数据页所属的表 空间号,数据页编号,数据页地址等信息是放在缓存页的前面控制块占缓冲页百分之5左右的内存大小缓存页1.buffer pool中存放的数据页我们叫缓存页,和磁盘上的数据页是一一对应的,都是16KB2.缓存页的数据,是从磁盘上加载到buffer pool当中的。

qq_48157004的博客 2186

机器视觉学习(七)—— 卷积、边缘和滤波器

卷积运算、垂直边缘与水平边缘、滤波器

歆歆~黯了 2740

MySQL Buffer Pool 解析:原理、组成及作用

当我们谈论MySQL的性能优化时,InnoDB存储引擎的缓冲池(Buffer Pool)是一个无法忽视的关键组件。作为内存中的一个重要区域,缓冲池对于减少磁盘I/O操作、加速数据访问起着至关重要的作用。本文将详细阐述MySQL缓冲池的原理、组成、各部分的作用、历史演进,以及它在数据增删改查过程中的流程和作用。

码到三十五 2万+

奥比中光Dabai深度相机SDK在Ubuntu22.04的兼容性安装指南

本文详细指导如何在Ubuntu22.04系统上安装奥比中光Dabai深度相机的SDK。针对新旧版本不兼容的核心问题,重点推荐使用经过验证的v1.10.18版本SDK,并提供了从系统依赖检查、SDK下载安装、Python环境配置到编译测试的完整步骤,帮助用户成功解决安装难题并实现相机驱动。

j2k3l4的博客 999

Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)

在开始编写一个 Java 项目之前,做好充分的准备工作是至关重要的。很多初学者可能在没有清晰规划的情况下就开始编写代码,导致项目开发进度缓慢、结构混乱,甚至最终无法按预期完成。而事实上,项目的成功不仅仅取决于编码能力,还包括项目初期的规划和准备。准备工作是确保项目顺利进行的基础,它包括技术选型、环境搭建、需求分析、团队协作及项目管理等多个方面。通过这些准备,我们可以确保项目的开发不仅高效而且有可维护性,最终能交付出高质量的代码。在项目开发过程中,异常处理是非常关键的一部分。

eternal__day的博客 1188

【mysql阅读笔记】之缓存池原理

缓存池是一块内存区域,在数据库读取数据的时候,先将读取到的页放入缓存池中,下次再读取的时候,直接从缓存池中获取,减少访问磁盘的次数,通过内存的速度弥补磁盘速度较慢对数据库的影响。对应数据库的修改操作,则首先修改缓存池中的页,被修改的页称之为脏页,然后再以一定的频率刷新到磁盘中。为什么不修改完直接刷新?因为怕刚刷新完再次修改,再次进行刷新。同样,这也是为了提高数据库的性能。

weixin_43262384的博客 1241

从DIY到实战:手把手教你搭建一个媲美吉时利2450的nA级电流源表(附原理图与避坑指南)

本文详细解析如何从零打造nA级精密电流源,涵盖核心设计原理、PCB布局技巧、热电偶效应应对及校准验证体系。通过低成本替代方案和优化设计,实现媲美商用源表的性能,特别适合硬件爱好者和独立开发者。文章还提供原理图与避坑指南,助你轻松搭建高精度电流源系统。

weixin_42656416的博客 291

Mysql数据库Buffer Pool缓冲池详解

Buffer Pool缓冲池机制详解、InnoDB缓冲池

weixin_44991038的博客 2416

fMRI数据处理:从DICOM到NIFTI(上)

哈喽,这里是系列fMRI数据处理文章专栏。包括从核磁拷贝完DICOM格式的文件,到整理数据,检查数据,数据预处理,后续分析等等内容。如果你是一个初学者,特别是心理学或者是刚踏入认知神经科学的小白,那么这个专栏可以帮助你从头到尾完成数据处理直到结果的可视化。如果你已经进入了认知神经科学领域,这里面的内容可能过于细致,并且找不到你想要的答案,不过可以在帖子下留言评论,欢迎大家提供宝贵的意见!如果是医学相关,可能这些内不太准确或专业,谨慎参考!

weixin_44933894的博客 2482

Claude Code 错误解决方案 使用策略拒绝 Usage Policy refusal

摘要:本文分析了Claude Code API请求被拒绝的问题,当违反Usage Policy时会显示错误提示。根因包括请求内容违规、模型敏感度差异或历史消息影响。解决方案包括修改请求措辞、切换至Sonnet 4.5模型或开启新会话。文章详细追踪了错误链路,提供了核心代码分析,并给出验证方法和最佳实践建议,帮助用户避免触发API拒绝机制。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 972

MySQL缓冲池Buffer Pool

MySQL的预读机制。当从磁盘中访问数据附近的数据,在未来有很大的概率也会被访问到,所以MySQL在加载数据时会把相邻的数据也会加载进来,这样可以很大概率的减少磁盘I/O。如果这些提前加载进来的数据没有被访问,这个预读操作相当于白做了,这就叫“预读失效”。使用简单的LRU算法会把预读的数据页加载放到链表头部,Buffer pool空间不足时还需要把原来末尾的数据淘汰掉。这些预读数据如果一直没有访问,而且还占用缓冲空间,就会大大降低缓存命中率。如何才能避免预读失效呢?

peng_shakalaka的博客 1923

(11-3-01 )

以太坊(Ethereum)是一种基于区块链技术的开源平台和加密货币。它于2015年由Vitalik Buterin和Gavin Wood等开发者创建,并成为比特币之后最受欢迎的加密货币之一。以太坊不仅支持加密货币交易,还为开发者和企业提供了构建去中心化应用程序的强大工具。在本节的内容中,将实型一个完整的机器学习模型项目,智能检测出以太坊区块链中的非法账户。从问题定义到模型建立和评估,再到最终的总结和建议。本实例突出了处理类别不平衡问题的重要性,并展示了如何使用多种机器学习算法来解决实际问题。此外,通过数据可

码农三叔 2170

MySQL InnoDB内存结构之Buffer Pool

缓冲池是主内存中的一个区域,InnoDB 在访问时缓存表和索引数据。 缓冲池允许直接从内存中访问经常使用的数据,从而加快处理速度。 在专用服务器上,高达 80% 的物理内存通常分配给缓冲池。为了提高大容量读取操作的效率,缓冲池被划分为可能包含多行的页面。 为了缓存管理的效率,缓冲池被实现为页链表; 很少使用的数据使用最近最少使用 (LRU) 算法的变体从缓存中老化。............

最后的武艺集大成者 548

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

InnoDB的Buffer Pool简介

这篇非常重要!这篇非常重要!这篇非常重要!重要的事情说三遍,这篇是后续事务和锁的基础,一定要看懂这篇,反正我写的已经够白话了,你要再看不懂呢,那你告诉我,我改还不行么~下边是建议正文:1. 最好使用电脑观看。2. 如果你非要使用手机观看,那请把字体调整到最小,这样观看效果会好一些。3. 碎片化阅读并不会得到真正的知识提升,要想有提升还得找张书桌认认真真看一会书,或者我们公众号的文章。4. 如果觉得...

灵魂自由的忙人 1962

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Mysql InnoDB Buffer Pool的逻辑链表

Mysql InnoDB Buffer Pool: innodb_buffer_pool_size:InnoDB Buffer Pool的总大小 innodb_buffer_pool_instances:InnoDB Buffer Pool的个数 innodb_buffer_pool_size/innodb_buffer_pool_instances即为每个instance的大小 每个Buff...

jzzw的博客 347

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一文带你了解MySQL之InnoDB_Buffer_Pool

缓冲池是InnoDB在访问表和索引数据时缓存的主内存区域。缓冲池允许直接从内存访问频繁使用的数据,这加快了处理速度

虫虫的博客 609

MySQL内存(Buffer Pool)

MySQL 的数据存在磁盘,但是不能每次读取数据都从磁盘里去,这样磁盘IO太频繁,存在性能问题。 InnoDB设计了一个缓存池(Buffer Pool),缓冲池在内存中。 默认配置Buffer Pool大小为,可以通过参数调整。一般调整为可用物理内存的60%~80%。InnoDB会把存储的数据划分为若干,以页作为磁盘与内存的交互的基本单位,一个页默认大小为16KB,Buffer Pool中也是由构成。 Buffer Pool除了缓存 和 ,还包括undo页,插入缓存页、自适应哈希索引、锁信息等等。 Inno

ansizy的博客 1365

JAVA面试题分享四百九十一:MySQL · 引擎特性 · InnoDB Buffer Pool

InnoDB的Buffer Pool可以认为很简单,就是LRU List和Flush List,但是InnoDB对其做了很多性能上的优化,例如减少加锁范围,page hash加速查找等,导致具体的实现细节相对比较复杂,尤其是引入压缩页这个特性后,有些核心代码变得晦涩难懂,需要读者细细琢磨。

之乎者也·的博客 1036

MySQL · 引擎特性 · InnoDB Buffer Pool

前言 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存的管理变得相对比较复杂。本文主要分析MySQL Buffer Pool的相关技术以及实现原理,源码基于阿里云RDS MySQL 5.6分支,其中部分特性已经开源到AliSQL。Buffer Pool相关的源代码在buf目录下,主要包括LRU List,Flu List,Doubl..

uuqaz的博客 311

MySQL 引擎特性 · InnoDB Buffer Pool

前言 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存的管理变得相对比较复杂。本文主要分析MySQL Buffer Pool的相关技术以及实现原理,源码基于阿里云RDS MySQL 5.6分支,其中部分特性已经开源到AliSQL。Buffer Pool相关的源代码在buf目录下,主要包括LRU List,Flu List,Double

一缕阳光的博客 486

free释放链表节点崩溃_Innodb Buffer Pool的三种Page和链表

导读作者:王航威,本文转载自“yangyidba”==========================一、Innodb Buffer Pool 简介Buffer Pool 是Innodb 内存中的的一块占比较大的区域,用来缓存表和索引数据。众所周知,从内存访问会比从磁盘访问快很多。为了提高数据的读取速度,Buffer Pool 会通过三种Page 和链表来管理这些经常访问的数据,保证热数据不被置换...

weixin_31940835的博客 251

MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法

本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 MySQL怎么运行的系列(三)Innodb缓冲池 buffer pool 和 改良版LRU算法 MySQL怎么运行的系列(四)Innodb索引结构和方案 ...

jqsfjqsf的博客 1741

mysql内存工作机制_【MySQL】InnoDB 内存管理机制 --- Buffer Pool

InnoDB Buffer Pool是一块连续的内存,用来存储访问过的数据页面innodb_buffer_pool_size 参数用来定义 innodb 的 buffer pool 的大小是 MySQL 中拥有最大的内存的模块Innodb 中,数据的访问是按照页/块(默认为16KB)的方式从数据文件中读取到 buffer pool中,然后在内存中用同样大小的内存空间做一个映射为了提高访问速度(也就...

weixin_34809884的博客 351
上一篇: 深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制
下一篇: MySQL主从复制深度解析:原理、演进与延迟优化实战
闻哥
博客等级 码龄8年 210粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闻哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值