《InnoDB引擎‍》 MySQL缓存池

news2025/1/16 13:47:02

‍MySQL缓存池

  InnoDB存储引擎是基于磁盘存储的,并将其中记录按照页的方式进行管理。因此可以将其视为基于磁盘的数据库

  在数据库系统中,由于CPU速度和磁盘速度之间的鸿沟,基于磁盘的数据库系统通常使用缓冲池技术来提高数据库整体性能

  缓冲池简单点说就是一块内存区域,通过内存的速度来弥补磁盘速度较慢对数据库性能的影响。

  数据库中读取页的操作流程是:首先将从磁盘读到的页存放在缓冲池中,这个过程称为将页"FIX"在缓冲池中。下一次再读相同页的时候,首先判断该页是否存在缓冲池中。如在缓冲池中,称该页在缓冲池中被命中,直接读取该页。否则,读取磁盘上的页。

  数据库中修改操作流程是:首先修改在缓冲池中的页,然后以一定频率刷新到磁盘上。需要注意的是,页从缓冲池刷新回到磁盘的操作并不是每次页发生更新时触发,而是通过一种称为CheckPoint的机制刷新回到磁盘。同样,也是为了提高数据库的整体性能。

  对于InnocentDB存储引擎而言,缓冲池的配置通过参数innodb_buffer_pool_size来设置。

mysql> show variables like 'innodb_buffer_pool_size'\G;
*************************** 1. row ***************************
Variable_name: innodb_buffer_pool_size
        Value: 134217728
1 row in set (0.00 sec)

  具体来看,缓冲池中缓存的数据页类型有:索引页、数据页、undo页、插入缓存(insert buffer)、自适应哈希索引(adaptive hash index)、InnoDB存储的锁信息(lock info)、数据字典信息(data dictionary)等。不能简单的认为,缓冲池只是缓存索引页和数据页,他们只是占缓冲池很大一部分而已。

在这里插入图片描述

  从InnoDB 1.0.x版本开始,允许有多个缓冲池实例。每个页根据哈希值平均分配到不同缓冲池实例中。这样做的好处是减少数据库内部的资源竞争,增加数据库的并发处理能力。可通过innodb_buffer_pool_instances进行配置,默认为1。

mysql> show variables like 'innodb_buffer_pool_instances'\G;
*************************** 1. row ***************************
Variable_name: innodb_buffer_pool_instances
        Value: 1
1 row in set (0.00 sec)

  在配置文件中将innodb_buffer_pool_instances设置为大于1的值就可以得到多个缓冲池实例。需要注意的是,当配置多个缓冲池实例时,仅当innodb_buffer_pool_size大小设置为1GB或更大的时候,此选项才生效。指定的总大小将分配给所有缓冲池。为了获得最佳效率,指定组合innodb_buffer_pool_instancesinnodb_buffer_pool_size,使得每个缓冲池实例至少是1GB。再通过命令show engine innodb status即可观察。

mysql> show engine innodb status\G;
*************************** 1. row ***************************
  Type: InnoDB
  Name:
Status:
=====================================
2022-11-16 14:51:11 0x7f7f6005a700 INNODB MONITOR OUTPUT
=====================================
......
----------------------
BUFFER POOL AND MEMORY
----------------------
Total large memory allocated 137428992
Dictionary memory allocated 117329
Buffer pool size   8191
Free buffers       7622
Database pages     566
Old database pages 228
Modified db pages  0
Pending reads      0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 0, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 532, created 34, written 36
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
Buffer pool hit rate 407 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 566, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
......

  从MySQL 5.6版本开始,还可以通过information_schema架构下的表Innodb_buffer_pool_stats来观察缓存状态

mysql> use information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select pool_id,pool_size,free_buffers,database_pages
    -> from innodb_buffer_pool_stats\G;
*************************** 1. row ***************************
       pool_id: 0
     pool_size: 8191
  free_buffers: 7652
database_pages: 536
1 row in set (0.00 sec)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里P8MySQL,基础/索引/锁/日志/调优都不误,一锅深扒端给你

阿里P8MySQL,你知道都问些啥吗?昨天小编特意去搜集了一些MySQLP8问题,经过整理归纳分为基础、索引、锁、日志、调优、开放问题等等168道题目,拿出这些题来测试一下自己水平可否??? 先上一张MySQ…

Tomcat 源码解析一请求处理的整体过程-黄泉天怒(上)

本博客的很多的理论知识都来源于 《Tomcat内核设计剖析》这本书,大家的兴趣去读这本书,对于想了解Tomcat源码的小伙伴,肯定对你有所帮助 ,但是想自己有亲身体会的话,还是要深入源码。 不然知道这些理论的知识&#xff…

Java面向对象:封装

1.封装: 面向对象的三大特征: 封装、继承、多态 它是什么: 封装:告诉我们,如何正确设计对象的属性和方法。 封装的原则:对象代表什么,就得封装对应数据,并提供数据对应的行为。 …

GUI编程--PyQt5--QWidget

文章目录QWidget简介功能作用控件的创建坐标系统控件位置与大小调整位置与尺寸最大、最小尺寸控件内容外边距设置鼠标的形状鼠标跟踪QWidget简介 控件是用户界面的最小元素,是一个矩形局域。没有父控件的控件为顶级控件,会装饰一个标题栏,成…

CentOS7源码安装 lldpd 并附查询脚本

文章目录源码安装 lldpd查询交换机端口的 lldpd 脚本查询交换机端口的 lldpad 脚本关于CentOS7上配置LLDP的文章,网络上已经很多了。实现交换机端口的抓取,众多周知的有两种工具,一种是lldpad,另一种是lldpd。 源码安装 lldpd 在…

get_post (攻防世界)(简单php)

前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 题目描述 进入网址 解题工具: 需要使用hackerbar (也可以用burpsuite) 问题解析: 科普时间又到 GET方法 用来向服务器请求数据。 是常见的HTTP方法之一。 查询字符是在URL中发送的: /…

led台灯哪个牌子质量好?2022最新的台灯牌子排名

众所周知,现在绝大部分台灯都是使用led灯珠作为发光源,led台灯作为主流的选择,在光线舒适度、光线调控性、台灯售价、显色与防护、节能环保等方面都是非常出色的,远超以前的传统白炽灯。那么现在市面上led台灯这么多,选…

甬矽电子在科创板上市:市值达到122亿元,王顺波为实际控制人

11月16日,甬矽电子(宁波)股份有限公司(下称“甬矽电子”,SH:688362)在科创板上市。本次在科创板上市,甬矽电子发行6000万股,发行价格为18.54元/股,募资总额为11.24亿元。…

java单例模式

单例设计模式:Spring中的Bean默认都是单例的。 概念 全世界就只要一个---在整个java程序中,只有这个类的一个实例 比如Student a new Student(); 就是Student类只创建这一个实例,只能有这一个对象存在 主要解决:一个全局使用的类频繁地创…

人工蜂群优化及其在资源管理中的应用(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

单钩点弹珠/片经验总结

开锁的方向:不要管主驾驶室在车子的左边还是右边,记住朝车头开启就可以。 开锁技巧:我们将HU101工具插入锁孔以后,摆好姿势,先拨动撬杆试探性的去点击弹片,一般我们会发现锁芯里面的弹片主要是下面一些排列…

Mysql系列三:Innodb MVCC版本控制

文章目录一、Innodb MVCC版本控制1、什么是MVCC版本控制?2、Innodb MVCC 核心3、事物版本号、隐藏列、undo log日志的协调工作机制4、Read view5、举例讲解MVCC流程6、InnoDB 引擎不同隔离级别MVCC的区别7、MVCC是否解决了幻读的问题一、Innodb MVCC版本控制 1、什…

项目实战 Java读取Excel数据

项目实战 Java读取Excel数据前言实现步骤导入POI依赖示例Excel表结构编写读取Excel工具类实现思路读取Excel数据工具类实现代码取出从excel中获取的数据,并插入到数据库中总结如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!…

jQuery复习

jQuery:是一个js函数库,口号写少 做多 write less do more 封装简化DOM操作(增删改查)/ajax 为什么使用:强大的选择器:方便快速查找DOM元素 隐式遍历:一次监听多个 读写合一:读数据&…

DEFORMABLE DETR学习笔记

DEFORMABLE DETR学习笔记 DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION ABSTRACT DETR最近被提出,以消除在目标检测中需要许多手工设计的组件,同时展示良好的性能。但由于Transformer注意模块在处理图像特征映射时的局…

基于51单片机驱动A4988实现步进电机逆时针转动

基于51单片机驱动A4988实现步进电机逆时针转动一、简介二、接线典型接线图实际接线三、部分代码引脚定义定时器初始化主函数四、实验现象五、注意事项一、简介 A4988 是一款完全的微步电动机驱动器,带有内置转换器,易于操作。该产 品可在全、半、1/4、1…

Synchronized 与 Lock 的使用

Synchronized的使用 以卖票为例 //基本的卖票例子/*真正的多线程开发,公司中的开发,降低耦合性线程就是一个单独的资源类,没有任何附属的操作1.属性、方法*/ public class SaleTicketDemo01 {public static void main(String[] args) {//多个线程操作同…

python 可视化解释模型

1. 自定义DataSet MakeDataset.py 首先准备好一个数据集文件,这里以mydata文件夹存放图片数据, 实现自定义DataSet class MyDataset(Dataset):def __init__(self,resize):super(MyDataset,self).__init__()self.resize resizedef __len__(self):retur…

【软件分析第13讲-学习笔记】符号执行 Symbolic Execution

文章目录前言正文符号执行基于霍尔逻辑的符号执行谓词转换计算最弱前置条件动态符号执行符号执行:进一步探究小结参考文献前言 创作开始时间:2022年11月16日18:46:31 如题,学习一下符号执行 Symbolic Execution的相关知识。参考&#xff1a…

计算机毕业设计jsp家校互动系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 家校互动系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用jav…