广告
返回顶部
首页 > 资讯 > 数据库 >MySQL Buffer pool里的change buffer是什么
  • 517
分享到

MySQL Buffer pool里的change buffer是什么

2024-04-02 19:04:59 517人浏览 薄情痞子
摘要

小编给大家分享一下Mysql Buffer pool里的change buffer是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一

小编给大家分享一下Mysql Buffer pool里的change buffer是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

4 change buffer

4.1 基本概念

change buffer是一种特殊的数据结构,当这些页面不在缓冲池中时,这些高速缓存会将更改缓存到辅助索引页面。可能由INSERT,UPDATE或DELETE操作(DML)导致的缓冲更改将在以后通过其他的读取操作将页加载到缓冲池中时合并。
MySQL Buffer pool里的change buffer是什么

相关免费学习推荐:mysql视频教程

如上图可见,change buffer用的是buffer pool里的内存,所以不能无限增长。change buffer大小可通过参数innodb_change_buffer_max_size动态设置。
比如设置为50:change buffer的大小最多只能占用buffer pool的50%。

需更新一个数据页时:

  • 页在内存,直接更新

  • 页不在内存,在不影响数据一致性下,InooDB会将这些更新操作缓存于change buffer,而无需从磁盘读入页

在下次查询访问该数据页时,才将数据页读入内存,然后执行change buffer中与这个页有关的操作。通过该方式就能保证该数据逻辑的正确性。

change buffer 实际上也是可持久化的数据,即它不仅在内存中有拷贝,也会被写进磁盘。

4.2 merge

将change buffer中的操作应用到原数据页,得到最新结果的过程。

4.2.1 触发时机

  1. 访问该数据页

  2. 系统后台线程定期merge

  3. 数据库正常关闭(shutdown)的过程

若能将更新操作先记录在change buffer,减少读盘,语句执行速度便会明显提升。且数据读入内存需要占用buffer pool,因此也能降低内存占用,提高内存利用率。

4.3 何时使用change buffer

  • 对于唯一索引,更新操作都要先判断该操作是否违反唯一性约束:
    比如,要插入(4,400)记录,要先判断表中是否已存k=4记录,就必须要将数据页读入内存来判断。若都已读入内存了,那直接更新内存自然很快,没必要使用change buffer。
    因此,唯一索引的更新不能使用change buffer,只有普通索引可使用

4.4 适用场景

难道普通索引的所有场景,使用change buffer都可加速吗?

注意merge才是真正进行数据更新时刻,change buffer主要是将记录的变更动作缓存。所以在一个数据页做merge前,change buffer记录变更越多(即该数据页上要更新的次数越多),收益越大。

  • 写多读少业务,页面在写完后马上被访问到的概率较小,change buffer使用效果最好。常见为账单、日志类系统。

  • 写后马上查询,将先新记录在change buffer,但之后由于立即访问该数据页,又很快触发merge,这样的话随机访问io次数不会减少,反而增加change buffer维护代价,change buffer起了副作用。

以上是“Mysql Buffer pool里的change buffer是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL Buffer pool里的change buffer是什么

本文链接: https://www.lsjlt.com/news/55424.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL Buffer pool里的change buffer是什么
    小编给大家分享一下MySQL Buffer pool里的change buffer是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一...
    99+
    2022-10-18
  • mysql的buffer pool 和 change buffer
    线上三张图吧:   一、innodb系统架构图  mysql的buffer pool 和 change buffer原文地址:https://www.cnblogs.com/mmh760/p/13500691.html...
    99+
    2016-11-06
    mysql的buffer pool change buffer 数据库入门 数据库基础教程 数据库 mysql
  • MySQ的Buffer pool是什么
    这篇文章主要介绍“MySQ的Buffer pool是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQ的Buffer pool是什么”文章能帮助大家解决问题...
    99+
    2022-10-19
  • MySQL Buffer Pool怎么提高页的访问速度
    这篇文章主要介绍了MySQL Buffer Pool怎么提高页的访问速度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL Buffer Pool怎么提高页的访问速...
    99+
    2023-07-05
  • linux buffer指的是什么
    本文小编为大家详细介绍“linux buffer指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux buffer指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2023-04-27
    linux buffer
  • MySQL中join buffer指的是什么意思
    小编给大家分享一下MySQL中join buffer指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、说明在MySQL对于join操作的处理过程中,...
    99+
    2023-06-15
  • mysql中的Cache和Buffer的区别是什么
    mysql中的Cache和Buffer的区别是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mysql Cache和Buffer区别有...
    99+
    2022-10-18
  • Cache 和 Buffer 的区别是什么
    这篇文章主要为大家分析了Cache 和 Buffer 的区别是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Cache 和 Buffer 的区别是什么”...
    99+
    2023-06-04
  • Nodejs中Buffer模块的用法是什么
    这篇文章主要介绍“Nodejs中Buffer模块的用法是什么”,在日常操作中,相信很多人在Nodejs中Buffer模块的用法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • Linux内存buffer和cache的区别是什么
    这篇文章主要介绍“Linux内存buffer和cache的区别是什么”,在日常操作中,相信很多人在Linux内存buffer和cache的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux内存...
    99+
    2023-06-16
  • Nodejs中的buffer缓存区的作用是什么
    这篇文章主要讲解了“Nodejs中的buffer缓存区的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nodejs中的buffer缓存区的作用是什...
    99+
    2022-10-19
  • mysql中的connection pool是什么
    今天就跟大家聊聊有关mysql中的connection pool是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。connection pool即...
    99+
    2022-10-18
  • Node.js的模块化机制和Buffer对象是什么
    本篇内容主要讲解“Node.js的模块化机制和Buffer对象是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js的模块化机制和Buffer对象是什么”吧!一、Node.js的模块...
    99+
    2023-06-29
  • Node.js中的Buffer对象及创建方式是什么
    Node.js中的Buffer对象及创建方式是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Buffer?js语言自身只有字符串数据类型,没有二进制数据类型,而处...
    99+
    2023-06-26
  • mysql里null指的是什么
    小编给大家分享一下mysql里null指的是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!在mysql中null代表什么都没有,是尚未定义的值,占用空间,但不能参与任何计算,因为空值参与任...
    99+
    2022-10-18
  • mysql里面字段指的是什么
    这篇文章主要介绍mysql里面字段指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据库中的字段就是指表的一列。数据表中的每一行是一个“记录”,每一个记录包含这行中的所有信息...
    99+
    2022-10-18
  • 阿里云的MySQL数据库是什么格式?
    阿里云的MySQL数据库是基于MySQL数据库管理系统开发的一款云计算数据库产品。它提供了一种安全、高效、可扩展的方式来管理、存储和检索数据。本文将详细介绍阿里云的MySQL数据库的格式。 一、阿里云的MySQL数据库格式阿里云的MySQL...
    99+
    2023-12-14
    阿里 格式 数据库
  • 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
    墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯、精选文章、干货文档。本周分享 开发者最喜爱的数据库是什么?阿里云脱口秀爆聊程序员转型;MySQL update误操作后进行数据库恢复;PG流复制踩坑;PG...
    99+
    2014-10-19
    数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作