我是靠谱客的博主 陶醉菠萝,最近开发中收集的这篇文章主要介绍MySQL双1参数innodb_flush_log_at_trx_commit、sync_binlog和两阶段提交,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、双1参数

1、innodb_flush_log_at_trx_commit

innodb_flush_log_at_trx_commit这个参数控制MySQL在事务提交时将内存中的Redo log file从Redo log buffer刷新到磁盘(Redo log file)的方式。
value: 0 1 2
10
每秒钟将内存中Redo log File从Redo Log Buffer刷新到OS Buffer并调用fsync()将OS Buffer刷新到磁盘(数据库宕机时,可能会有数据丢失)
21
默认为1,表示每次事务提交时会将Redo Log File从Redo Log Buffer中刷新到OS Buffer,并且会调用fsync()将OS Buffer刷新到磁盘(数据库宕机时,不会有数据丢失)
32
每次事务提交时会将内存中Redo Log File从Redo Log Buffer中刷新到OS Buffer,每秒钟调用fsync()将OS Buffer刷新到磁盘(数据库宕机时,可能会有数据丢失)

2、sync_binlog

sync_binlog参数控制将内存中binlog从binlog buffer中刷新到磁盘的方式
value : 0 1 N
10
由OS决定什么时候调用fsync()来将内存中binlog file从binlog buffer刷新到磁盘(binlog file).
21
每次事务提交时,将内存中binlog file从binlog buffer中刷新到磁盘(binlog file).
3)N
每N次事务提交时,将内存中的binlog file从binlog buffer中刷新到磁盘(binlog file).
注:binlog buffer满的时候会自动调用fsync()同步binlog buffer到磁盘(binlog file).

二、两阶段提交

MySQL采用两阶段提交的方式来保证有数据库变更的时候写入Redo Log File和Binlog File数据的一致性.

1、Redo Write
2、Redo prepare(fsync())
3、Binlog Write
4、Redo Commit

最后

以上就是陶醉菠萝为你收集整理的MySQL双1参数innodb_flush_log_at_trx_commit、sync_binlog和两阶段提交的全部内容,希望文章能够帮你解决MySQL双1参数innodb_flush_log_at_trx_commit、sync_binlog和两阶段提交所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部