首页 > 数据库 >mysql缓存-Buffer Pool总结

mysql缓存-Buffer Pool总结

时间:2023-02-01 12:55:35浏览次数:45  
标签:缓存 old Buffer 链表 innodb mysql Pool

1. 磁盘太慢,用内存作为缓存很有必要。 2. Buffer Pool 本质上是 InnoDB 向操作系统申请的一段连续的内存空间,可以通过innodb_buffer_pool_size 来调整它的大小。 3. Buffer Pool 向操作系统申请的连续内存由控制块和缓存页组成,每个控制块和缓存页都是一一对应的,在填充足够多的控制块和缓存页的组合后, Buffer Pool 剩余的空间可能产生不够填充一组控制块和缓存页,这部分空间不能被使用,也被称为 碎片 。 4. InnoDB 使用了许多 链表 来管理 Buffer Pool 。 5. free链表 中每一个节点都代表一个空闲的缓存页,在将磁盘中的页加载到 Buffer Pool 时,会从 free链表 中寻找空闲的缓存页。 6. 为了快速定位某个页是否被加载到 Buffer Pool ,使用 表空间号 + 页号 作为 key ,缓存页作为 value ,建立哈希表。 7. 在 Buffer Pool 中被修改的页称为 脏页 ,脏页并不是立即刷新,而是被加入到 flush链表 中,待之后的某个时刻同步到磁盘上。 8. LRU链表 分为 young 和 old 两个区域,可以通过 innodb_old_blocks_pct 来调节 old 区域所占的比例。首次从磁盘上加载到 Buffer Pool 的页会被放到 old 区域的头部,在 innodb_old_blocks_time 间隔时间内访问该页不会把它移动到young 区域头部。在 Buffer Pool 没有可用的空闲缓存页时,会首先淘汰掉 old 区域的一些页。 9. 我们可以通过指定 innodb_buffer_pool_instances 来控制 Buffer Pool 实例的个数,每个 Buffer Pool 实例中都有各自独立的链表,互不干扰。 10. 自 MySQL 5.7.5 版本之后,可以在服务器运行过程中调整 Buffer Pool 大小。每个 Buffer Pool 实例由若干个 chunk 组成,每个 chunk 的大小可以在服务器启动时通过启动参数调整。 11. 可以用下边的命令查看 Buffer Pool 的状态信息:SHOW ENGINE INNODB STATUS\G ---摘自《mysql是怎么运行的》

标签:缓存,old,Buffer,链表,innodb,mysql,Pool
From: https://www.cnblogs.com/ljj007/p/17082185.html

相关文章

  • MySQL 合并查询union 查询出的行合并到一个表中
    在合并查询中,尤其是二分类的情况,在查询结果是相同列名的时候可以考虑合并查询。先查询出行的结果,再使用union或者unionall合并查询结果。另外如果union和orderby一......
  • MySQL
    本单元目标​ 一、为什么要学习数据库​ 二、数据库的相关概念​ DBMS、DB、SQL​ 三、数据库存储数据的特点​ 四、初始MySQL​ MySQL产品的介绍​ MySQL产品的......
  • MySQL8.0安装
    MySql8.0安装下载MySql8.0解压版下载地址:https://dev.mysql.com/downloads/mysql/解压mysql配置MySQL80的环境变量在解压的根目录下添加my.ini文件[mysqld]#设置......
  • 使用一个 mysqld exporter 监控所有的MySQL实例
    说明之前文章有聊过使用Prometheus监控自建Mysql,感兴趣的同学可以看下。本次我们简单聊下结合consulmanager使用一个mysqldexporter监控所有的MySQL实例的具体实现方法......
  • com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failur
    记录一次MySQL数据库连接失败问题,起因是电脑待机运行程序,第二天重启就连接不上数据库了在数据库内设置两个参数:MySQL服务器默认的“wait_timeout”是8小时,数据库超过8小时......
  • 【mysql】 查询数据时group by,及group_concat()函数用法
    GROUPBY语句语法select聚合函数,列(要求出现在groupby的后面)from表where筛选条......
  • mysql-内置函数
    函数一、单行函数1.数学相关函数1.1数值函数1.2角度弧度互换1.3三角函数:其中的参数是弧度,所以应先将角度换算成弧度在使用该函数1.4指数与对数1.5进制转换......
  • 从零写一个兼容MySQL/Oracle的Proxy中件间(一)《初识Oracle的通信协议》
    0.前言MySQL由于开源的原因,有各式各样的中件间Proxy,极大的丰富了做高可用或迁移的方案,习惯了MySQL生态圈的灵活和便利,Oracle官方不开源代码和协议,没有中间件proxy,显得很......
  • .net升级7.0报错1. MySqlConnection is already in use. See https://fl.vu/mysql-con
    框架升级到7.0后,经常出现服务崩溃的问题,频繁到几乎五分钟一次...然后开始盯日志,得到以下下几种异常:MySqlConnectionisalreadyinuse.Seehttps://fl.......
  • 1-安装MySQL数据库
    解压文件,移动到/usr/local/mysql3308目录下tar-zxvfmysql-5.7.35-linux-glibc2.12-x86_64.tar.gzmvmysql-5.7.35-linux-glibc2.12-x86_64/usr/local/mysql3308......