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

MySQL 的 InnoDB 缓冲池里有什么?--InnoDB存储梳理(二)

文章目录

  • 缓冲池的配置
  • 介绍一张表 INNODB_BUFFER_POOL_PAGES
    • 字段解释

缓冲池的配置

以下配置的意思,缓冲池在内存中的大小为20M;只有1个缓冲池实例;每一块的大小,插入缓冲占的百分比

# InnoDB 缓存池配置
innodb_buffer_pool_size = 20M
innodb_buffer_pool_instances = 1
innodb_buffer_pool_chunk_size = 2M# InnoDB 插入缓冲配置
innodb_change_buffer_max_size = 25

在我们启动mysqld的时候,日志中会打印InnoDB的初始化信息

在这里插入图片描述

介绍一张表 INNODB_BUFFER_POOL_PAGES

它是InnoDB存储引擎的一个缓存池页的信息表,用于显示 InnoDB 缓冲池中各页的信息,是一个临时表,没有主键,生产上别随便用。

查询这个表的数量1280个数据,算一下,InnoDB 的一页是 16k,1280 * 16k = 20480k;刚好就我们配置的 20M;在MySQL启动的时候,它就会把配置的所有的缓存池空间分成页,放到这个数据表里面。
在这里插入图片描述

字段解释

POOL_ID: 缓冲池的 ID。指缓冲池的编号。是代表当前这个页属于哪一个缓存池实例,innodb_buffer_pool_instances如果设置为2,就能看到这个字段值有0和1;我们设置了只有1个缓冲池实例,所以只有一个缓冲池实例0
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4d027e1df28343489640e1db2a8e02fb.png

BLOCK_ID: 缓冲池中的块 ID。看我的数据库,一个块有 10 页,现在有 1280 页,块ID最大 127。在这里插入图片描述
SPACE: 表示页所属的表空间 ID。0 通常表示系统表空间,就是data目录下的ibdata1文件,ID代表的信息,可以在 INNODB_SYS_TABLESPACES 中查询到,表空间就代表那个文件存储了这个页的信息,一般每张表都会有一个 *.ibd 文件存放该表的数据信息,这个就代表一下两个页的信息是存在test/test7.ibd这个文件里面的。
在这里插入图片描述
在这里插入图片描述

PAGE_NUMBER: 页号,在其所在的表空间中的编号,一般表空间的表空间头信息页、插入缓冲的位图信息页是在前面的,后面是段索引页,再后面就都是数据页,共享表空间没有存储表的数据信息,存储的事其他的信息。
在这里插入图片描述

PAGE_TYPE: 页的类型。可能的类型包括:

  • INDEX: B-tree 索引页也是存放数据的页,innodb 是聚簇索引存储的方式,主键索引和数据都在叶子节点上。
  • FILE_SPACE_HEADER: 表空间头页。
  • IBUF_BITMAP: 插入缓冲位图页。
  • IBUF_FREE_LIST: 插入缓冲空闲列表页。
  • IBUF_INDEX: 插入缓冲池/ insert buffer。
  • INODE: INODE 页。
  • SYSTEM: 系统页,可能包含数据字典、系统元数据…
  • UNKNOWN: 未知页类型,这个一般是未分配的页的类型。

查看当前我们的缓冲池中有哪些页。

SELECT POOL_ID, PAGE_TYPE, COUNT(*) AS PAGES FROM INNODB_BUFFER_PAGE GROUP BY POOL_ID, PAGE_TYPE;

在这里插入图片描述

这里是我执行了一条insert语句之后产生的,这就是是我们的插入操作用上了插入缓冲池;如果我们插入的表没有索引,那么不管怎么尝试都不会有这个类型的页面。所以 change buffer 只对非唯一索引有用,其他的没用
在这里插入图片描述FLUSH_TYPE: 页的刷新类型。缓冲池的刷新行为;代表该页的刷新是怎么产生的,比如,后台线程刷新的,用户查询刷新的FIX_COUNT: 页的固定计数。表示有多少事务当前固定了这个页,防止其从缓冲池中被驱逐,暂时还不知道用途。

IS_HASHED: 表示页是否在缓冲池哈希表中。可能的值有 YESNO,暂时还不知道用途。

NEWEST_MODIFICATION: 页的最新修改 LSN(日志序列号)。修改了数据之后,该值会有改动,数据库重启的时候就是0。

OLDEST_MODIFICATION: 页的最早修改 LSN。一般为0,暂时还不知道用途。

ACCESS_TIME: 页的最后访问时间。在某些配置中,这个值可能总是为 0。

TABLE_NAME: 表的名称。如果页不属于任何表,此值为 NULL,这个页是那张表的页信息。

INDEX_NAME: 索引的名称。如果页不属于任何索引,此值为 NULL 如果是INDEX页会有该信息。

NUMBER_RECORDS: 页中的记录数,这一页存了多少个记录。

DATA_SIZE: 页中的数据大小(字节数),这个页存了多少数据。

COMPRESSED_SIZE: 页的压缩大小(如果页被压缩),暂时还不知道用途。

PAGE_STATE: 页的状态。常见的值有:

  • NOT_USED: 页未使用。
  • FREE: 页空闲。
  • DIRTY: 脏页。
  • CLEAN: 干净页。
  • FILE_PAGE 文件页,这个页面对应的是某个表空间 .ibd 文件里面的页

IO_FIX: 页的 IO 修复状态。常见的值有:

  • IO_NONE: 没有 IO 操作。
  • IO_READ: 读取操作。
  • IO_WRITE: 写入操作。

IS_OLD: 页是否是旧的。可能的值有 YESNO

FREE_PAGE_CLOCK: 页的空闲页面时钟计数,暂时还不知道用途。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024 年最佳 7 款 Java 分析器工具
  • Linux驱动入门实验班——基础驱动模板(附百问网视频链接)
  • MongoDB | MongoDB 终端查询
  • 详细分析Python链接Oracle的多种方式(附Demo)
  • “从头开始训练模型,几乎没有意义”
  • 【亲测有效!】ubuntu20.04和Centos7离线安装docker及nvidia-container-toolkit
  • 从零搭建React全家桶框架教程:快速搭建react+react-router+redux项目
  • 新专利:温室土壤温湿度预测模型构建方法和程序产品
  • day09——集合ArrayList
  • vue使用富文本编辑器+自由伸缩图片
  • 在Linux下编译安装Python3.10.0及以上环境(解决了openssl依赖问题)
  • javaEE WebServlet、SpringWebMVC、SpringBoot实现跨域访问的4种方式及优先级
  • git update-git-for-windows 升级失败
  • django项目中通用的分页组件
  • 【深度学习实践】基于深度学习的图像去雾算法-ChaIR-实践
  • 时间复杂度分析经典问题——最大子序列和
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [译] 怎样写一个基础的编译器
  • Angularjs之国际化
  • Hexo+码云+git快速搭建免费的静态Blog
  • iOS小技巧之UIImagePickerController实现头像选择
  • js继承的实现方法
  • Less 日常用法
  • php的插入排序,通过双层for循环
  • Python爬虫--- 1.3 BS4库的解析器
  • Redis在Web项目中的应用与实践
  • Vue UI框架库开发介绍
  • 成为一名优秀的Developer的书单
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 关于Java中分层中遇到的一些问题
  • 机器学习中为什么要做归一化normalization
  • 基于遗传算法的优化问题求解
  • 盘点那些不知名却常用的 Git 操作
  • 判断客户端类型,Android,iOS,PC
  • 浅谈Golang中select的用法
  • 使用common-codec进行md5加密
  • 数组大概知多少
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 在Unity中实现一个简单的消息管理器
  • 2017年360最后一道编程题
  • #HarmonyOS:Web组件的使用
  • #php的pecl工具#
  • #QT(一种朴素的计算器实现方法)
  • #QT(智能家居界面-界面切换)
  • #知识分享#笔记#学习方法
  • (6)STL算法之转换
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (SERIES12)DM性能优化
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (六)Flink 窗口计算
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (十)c52学习之旅-定时器实验
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转) 深度模型优化性能 调参