mysql 更新语句的执行流程(mysql实战45讲笔记)

mysql 更新语句的执行流程(mysql实战45讲笔记)

mysql执行更新语句时, 涉及到两种日志redo log(重做日志)和binlog(归档日志)。

  • redo log是InnoDB引擎特有的,拥有crash-safe能力:数据库发生异常重启,之前提交的记录都不会消失。binlog是MySQL服务层实现的,所有引擎都可以使用。
  • redo log是物理日志,记录在数据页上的修改;binlog是逻辑日志,记录语句的原始逻辑。
  • redo log大小固定、循环写,binlog可以追加写。

通过“两阶段提交”,可以让数据库恢复到任意时刻的数据。
“两阶段提交”,是指把redo log拆成prepare和commit状态:引擎更新数据到内存后,将更新操作记录到redo log中,redo log处于prepare状态;执行器把该操作的binlog写入磁盘,调用引擎的提交事务接口,引擎把redo log改成commit状态。更新完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值