当前位置: 首页 > MySQL数据库

怎么理解MarriDB/MySQL的binlog group commit技术

时间:2026-01-28 14:10:38

我们知道,操作系统使用页面缓存机制来填补内存访问速度和磁盘访问速度之间的差距。通常情况下,对磁盘文件的写都会先写入到页面缓存中,
然后由操作系统来决定何时将修改过的脏页刷新到磁盘上。如果想确保修改已经持久写到了磁盘,必须调用fsync或fdatasync。在关系数据库中,
为了满足ACID中的持久化属性,也就是说事务提交并成功返回给客户端之后,必须保证该事务的所有修改不能丢。无论是在数据库程序崩溃的情况下,
还是在数据库所在的服务器发生宕机或断电的情况下,都必须保证数据不能丢,这就要求数据库在事务提交过程中调用fsync或fdatasync将数据持久化
到磁盘。fsync是一个昂贵的系统调用,对于普通的磁盘,每秒只能完成几百次的fsync操作,很明显,fsync将会限制每秒提交的事务数,成为关系
数据库的瓶颈。
对于MarriDB/MySQL来说,这种情况变得更加糟糕。在开启binlog的情况下,为了保证主库和从库之间数据的一致性,MarriDB/MySQL使用了事务的
两阶段提交协议。在这种情况下,为了满足数据的持久化需求,一个事务的提交最多会导致3次fsync操作。
为了提高MarriDB/MySQL在开启binlog的情况下单位时间内的事务提交数,就必须减少每个事务提交过程中导致的fsync的调用次数。MarriDB从5.3版本开始,
引入了binlog group commit技术来解决这个问题。MySQL从5.6版本开始也加入了binlog group commit技术。
binlog group commit的基本思想是多个并发提交的事务之间共用一次fsync操作来实现事务对binlog修改的持久化。


上一篇:怎么搭建Heartbeat+DRBD+MySQL
下一篇:MySQL集群NDB 7.5有哪些知识点
MarriDB mysql
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素