MySQL实战之BufferPoll详解

MySQL实战之BufferPoll详解

前言

  1. 使用MySQL如果没听过BufferPoll, 就好比写Java不知道Spring一样,人家会觉得你很low,大家都明白的,只要提到高效,肯定第一想到的就是内存,MySQL的核心内存就是它

BufferPoll详解

  1. MySQL启动时是什么样的了,来张图示意一下,首先MySQL操作的基本单元是缓存页,它是和数据页对应的,每个的大小都是16K,MetaData记录它们之间的对应关系。
    在这里插入图片描述
  2. 刚开始是没问题的, 但是用着用着就不知道哪些在用,哪些空闲了,这个时候free链表就应运而生了,它的数据结构是双向链表,存在于metaData中, 其中有一个基础节点包含一空闲缓存页的数量和指向头尾节点的地址引用。
    在这里插入图片描述
  3. 这时候有一些缓存页执行了增删改操作,后续肯定要进行刷盘操作啊,flush链表就是专门做这件事的,它和free链表类似也是一个双向链表的结构
  4. 还有一个比较重要的数据结构,称之为lru链表,它里边区分出了冷热数据,首先数据都是在冷数据区的,1秒以后再次访问,就会移动到热数据区。这个时候需要把脏数据刷盘就有目标了,肯定从冷数据区的末尾开始啦。
  5. 彩蛋
    1. 既然BufferPoll对于效率的影响这么大,而系统默认的内存是128M,是不是要优化一下,比如每个设置为2G, 再比如说设置4个,这样并发效率是不是大大提升
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值