binlog数据库不写入binlog_MYSQL中binlog有哪些常见的问题及解决方案?

本文讨论了MYSQL数据库中binlog常见的三个问题:事务提交时flush redo log的性能损失,binlog与引擎层事务提交顺序一致性,以及同时写redo和binlog导致的性能下降。针对这些问题,提出了redo log组提交技术、内部XA事务和优化后的组提交策略等解决方案,以提高数据库性能和保证数据一致性。
摘要由CSDN通过智能技术生成

MYSQL数据库是我们比较常见的数据库,因此关于MYSQL数据库在使用过程中的问题提问的人也非常多。那么MYSQL中binlog有哪些常见的问题?这些问题的解决方案是什么?下文是关于MYSQL数据库中通过示例代码详细介绍了一些binlog优化的思维问题,这些示例代码对于每个人的学习或工作都具有一定的参考学习价值。

首先说一下问题:

问题1:如何解决事务提交时flush redo log带来的性能损失

WAL是实现事务持久性(D)的一个常用技术,基本原理是将事务的修改记录redo log。redo

log顺序追加写入。事务提交时,只需要保证事务的redo log落盘即可,通过redo

log的顺序写代替页面的随机写提升数据库系统的性能。但是,该方案必须要求每个事务提交时都将其生成的redo log进行一次刷盘,效率不高。

问题2:binlog和引擎层事务提交的顺序问题

对于单个事务而言,日志写入顺序是先redo

log再binlog,只要维持该顺序即可维持正确性。但对于一个高并发的数据库系统而言,每时每刻可能都会存在众多并发执行的事务。我们还需要通过一定的手段来维护Server层binlog和引擎层事务提交的顺序一致性。

维护这种顺序一致性其实是为了保证备份工具Xtrabackup的正确性。

当 binlog 作为协调者,如果其中记录的事务顺序和存储引擎层记录的顺序不一样的话,备份工具(Innodb Hot

Backup)拿到备份集的位点可能会存在空洞。因为备份工具会拷贝 redo 日志,在 redo 的头部会记录最后一个提交的事务对应的 binlog

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值