Mysql底层原理二:Buffer Pool

在这里插入图片描述
在这里插入图片描述

1.数据区

就是描述信息+缓存页这块,用来存放从磁盘加载的数据页(看上图 索引页和数据页是分开的)

2. free链表

用来标识数据区哪些数据页是可用的

3. flush链表

update的时候,如果数据在数据区可以找到,那就直接内存更新,后续通过异步线程将数据刷回磁盘

4. lru链表

● 既然用的是Buffer pool缓存,那就肯定有满的一天,所以需要使用lru链表来进行清理
● 另外,既然是缓存,那我肯定是想提高缓存的命中率的,mysql存在预读机制、全表扫描,这些会影响缓存的命中率,因为预读导致加载了很多没用的数据,全表扫描更可怕,直接填充大量无用数据
解决办法:冷热分区,优先分配到冷数据区,如果读取次数很频繁,就把他加载到热数据区。lru在清理的时候,优先清理冷数据区,热数据区访问频繁,提高的缓存的命中率。

解决办法:冷热分区,优先分配到冷数据区,如果读取次数很频繁,就把他加载到热数据区。lru在清理的时候,优先清理冷数据区,热数据区访问频繁,提高的缓存的命中率。
在这里插入图片描述
在这里插入图片描述

5. insert buffer(5.6之前针对 insert做的优化, 5.7改名为change buffer 对dml操作都会优化)

update执行一条语句的时候,假设buffer pool中没有数据,它就会去磁盘加载,这时候mysql的设计者又加了一种数据结构 insert buffer,就是说我先把 update要操作数据记录到insert buffer中,不去访问磁盘了,后续异步线程merge到磁盘 或者select的时候 merge到磁盘

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

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

相关文章

42. 接雨水(Java)

目录 题目描述:输入:输出:代码实现: 题目描述: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 输入: height [0,1,0,2,1,0,1,3,2,1,2,1]输出&#xff1…

【PDF-XSS攻击】Java项目-上传文件-解决PDF文件XSS攻击

文章目录 背景解决pdfbox依赖控制器代码PdfUtils工具类 验证最后源码参考 背景 上传xss-pdf造成存储型xss因为在浏览器直接预览的PDF,而不是预览,所以安全部门认为会有XSS漏洞 解决 安全部门修复建议 1、根据白名单的标签和属性对数据进行过滤&#…

单例模式--理解

单例模式 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。 单…

成都正信法律:借了钱不还怎么办

在人际交往中,借贷是一种常见的经济行为。然而,借出的钱款有时却难以收回,这不仅影响个人的经济状况,还可能损害双方的关系。面对这种棘手的问题,我们需要采取明智的措施来解决。 沟通是解决问题的关键。当发现对方迟迟…

Golang单元测试和压力测试

一.单元测试 1.1 go test工具 go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程类似,并不需要学习新的语法,规则和工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的…

接口自动化入门: Requests请求头设置详解!

在进行接口自动化测试时,设置请求头是非常重要的一步。请求头可以包含各种信息,例如身份验证、内容类型、接受语言等。在实际的测试中,我们使用Python的Requests库来发送HTTP请求,并设置请求头来模拟不同的场景和需求。 下面将通…

Langchain教程 | langchain+OpenAI+PostgreSQL(PGVector) 实现全链路教程,简单易懂入门

前提: 在阅读本文前,建议要有一定的langchain基础,以及langchain中document loader和text spliter有相关的认知,不然会比较难理解文本内容。 如果是没有任何基础的同学建议看下这个专栏:人工智能 | 大模型 | 实战与教程…

4.1网安学习第四阶段第一周回顾(个人学习记录使用)

本周重点 ①Nmap的使用 ②MSF的使用 ③XRAY / Dirb / AWVS / FSCAN 的使用 ④Nessus的使用 ⑤MsfVenom木马制作 ⑥反弹shell的各种实现方式 本周主要内容 DAY1 一、课程介绍 第一阶段 :网络 和 协议 以及 等保 ,主要是对于网络整个安全的架构设…

8.java openCV4.x 入门-Mat之多维元组(Tuple)

专栏简介 💒个人主页 📰专栏目录 点击上方查看更多内容 📖心灵鸡汤📖我们唯一拥有的就是今天,唯一能把握的也是今天建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 🧭文…

Python基于深度学习的屋内烟雾检测系统的研究与实现,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

51单片机实验03-定时器T0来实现流水灯从左到右再从右到左

目录 一、实验目的 二、实验说明 1、51单片机有两个16位内部计数器/定时器(C/T, Counter/Timer)。 2、模式寄存器TMOD 1) M1M0工作模式控制位; 2) C/T定时器或计数器选择位: 3)GATE定时器/计数器运行…

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据…