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

MySQL高级--01_1--数据库缓冲池(buffer pool)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 数据库缓冲池(buffer pool)
        • DBMS 会申请占用内存来作为数据缓冲池,在真正访问页面之前,需要把在磁盘上的页缓存到内存中的Buffer Pool 之后才可以访问。
    • 1 缓冲池 vs 查询缓存
        • 缓冲池和查询缓存是一个东西吗?不是。
    • 2.缓冲池如何读取数据
    • 3. 查看/设置缓冲池的大小
    • 4. 多个Buffer Pool实例
    • 5. 引申问题
    • 6.调优策略
    • 7. Buffer Pool的内存淘汰策略
        • 冷热分区的LRU策略
    • 8.Redo Log跟Buffer Pool的关系 重做日志 持久性
    • 9.更新操作的流程:


数据库缓冲池(buffer pool)

DBMS 会申请占用内存来作为数据缓冲池,在真正访问页面之前,需要把在磁盘上的页缓存到内存中的Buffer Pool 之后才可以访问。

在这里插入图片描述

1 缓冲池 vs 查询缓存

缓冲池和查询缓存是一个东西吗?不是。

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

2.缓冲池如何读取数据

  1. 缓冲池管理器会尽量将经常使用的数据保存起来,在数据库进行页面读操作的时候,首先会判断该页面是否在缓冲池中
  2. 如果存在就直接读取
  3. 如果不存在,就会通过内存或磁盘将页面存放到缓冲池中再进行读取。

在这里插入图片描述

3. 查看/设置缓冲池的大小

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

4. 多个Buffer Pool实例

在这里插入图片描述

5. 引申问题

Buffer Pool是MySQL内存结构中十分核心的一个组成,你可以先把它想象成一个黑盒子。

在这里插入图片描述

6.调优策略

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

7. Buffer Pool的内存淘汰策略

Redis–06–持久化策略—内存优化策略
在这里插入图片描述
在这里插入图片描述

冷热分区的LRU策略

LRU链表会被拆分成为两部分,一部分为热数据,一部分为冷数据。冷数据占比 3/8,热数据5/8。

image.png

数据页第一次加载进来,放在LRU链表的什么地方?

放在冷数据区域的头部

冷数据区域的缓存页什么时候放入热数据区域?

MySQL设定了一个规则,在 innodb_old_blocks_time 参数中,默认值为1000,也就是1000毫秒。

意味着,只有把数据页加载进缓存里,在经过1s之后再次对此缓存页进行访问才会将缓存页放到LRU链表热数据区域的头部。

为什么是1秒?

因为通过预读机制和全表扫描加载进来的数据页通常是1秒内就加载了很多,然后对他们访问一下,这些都是1秒内完成,他们会存放在冷数据区域等待刷盘清空,基本上不太会有机会放入到热数据区域,除非在1秒后还有人访问,说明后续可能还会有人访问,才会放入热数据区域的头部。

8.Redo Log跟Buffer Pool的关系 重做日志 持久性

事务–04—MySQL事务日志----redo日志

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

9.更新操作的流程:

1.从存储引擎层,拿到数据,记录到Buffer Pool,进一步的返回给Server层

2.server层会把这个数据页里面的数据进行修改

3.调用存储引擎,记录到Buffer Pool

4.Redo Log Undo Log 记录

5.事务提交

image.png在这里插入图片描述


http://www.kler.cn/news/162587.html

相关文章:

  • 【广州华锐互动VRAR】VR戒毒科普宣传系统有效提高戒毒成功率
  • 反序列化 [网鼎杯 2020 朱雀组]phpweb 1
  • A : DS静态查找之顺序查找
  • 视频后期特效处理软件 Motion 5 mac中文版
  • 使用java线程实现亿级数据处理
  • 【Python】pptx文件转pdf
  • 优秀案例 | 元宇宙双语财经科技主播“舒望”主持首届粤港澳大湾区元宇宙国际传播论坛
  • 多目标追踪评价指标
  • Android Kotlin 泛型:强大的类型抽象和重用利器
  • 智能优化算法应用:基于战争策略算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 维基百科文章爬虫和聚类:高级聚类和可视化
  • 人工智能原理复习--搜索策略(一)
  • vue在哪个生命周期内调用异步请求
  • React setState()的两种书写方法对比
  • AIGC: 关于ChatGPT中实现一个聊天机器人
  • 触控板绘画工具Inklet mac功能介绍
  • selenium 解决 id定位、class定位中,属性值带空格的解决办法
  • 信息学奥赛一本通1002:输出第二个整数
  • CentOS服务自启权威指南:手动启动变为开机自启动(以Jenkins服务为例)
  • 年度工作总结怎么写?掌握这些年终总结万能公式,让你的报告出彩无比!
  • 【Docker】进阶之路:(十)Docker日志管理
  • Linux基础——进程初识(一)
  • Filed II 绘制超声 3D/2D 点扩散函数
  • MS5228/5248/5268:2.7V 到 5.5V、 12/14/16Bit、内置基准、八通道数模转换器
  • Jupyter安装使用教程
  • DHTMLX Scheduler PRO 6.0.5 Crack
  • 彻底解决ModuleNotFoundError: No module named ‘exceptions‘【Bug完美解决】
  • camera2对摄像头编码h264
  • Linux高级管理-搭建网站服务
  • 服务器配置免密SSH