其他问题
...小于 1 分钟
其他问题
什么时候刷脏页?
- redo_log写满时,需要暂停更新操作,此时会停止所有的写入操作
- 机器的物理内存满了的时候
- Mysql处于空闲状态时
- Mys重启时
什么是两阶段提交?
两阶段提交是分布式系统中比较常见的一种事务提交算法。在Innodb的日志提交时用到了这个协议,用来保证事务提交时,redolog和binlog 都处于完成状态。具体而言:
- 操作完更新语句,把数据保存到内存
- 写入RedoLog,处于prepare阶段
- 写入BinLog
- 提交事务,BinLog和RedoLog都处于完成状态。
Redo_log和Bin_log是如何配合工作实现持久化的?
它们有一个共同的数据字段,叫 XID。崩溃恢复的时候,会按顺序扫描 RedoLog:
- 如果碰到既有 prepare、又有 commit 的 RedoLog,就直接提交;
- 如果碰到只有 prepare、而没有 commit 的RedoLog,就拿着 XID 去BinLog 找对应的事务。