redo log和 binlog

MySQL执行更新语句时涉及redo log和binlog,两者配合实现Write-Ahead Logging(WAL)技术,保证CrashSafe能力。redo log用于InnoDB存储引擎,提供物理日志,记录内存中的修改,循环写入;binlog则是归档日志,用于定期全备,记录在磁盘。二阶段提交确保两个日志一致性,参数innodb_flush_log_at_trx_commit和sync_binlog设置为1可确保异常重启后数据不丢失。
摘要由CSDN通过智能技术生成

mysql执行update语句和执行select语句前面的流程都一样,到执行器的时候会涉及到两个日志模块,redo log和 binlog。

redo log 和binlog配合就是Mysql经常提到WAL技术,WAL 的全称是 Write-Ahead Logging,它的关键点就是先写日志,再写磁盘。

一、redo log

1、redo log叫重做日志/物理日志,只适用于InnoDb存储引擎。
2、用来实现 crash-safe 能力。
3、记录在内存中。
4、redo log固定大小,循环记录,因此会「擦脏」。
在这里插入图片描述
write pos 是记录位置,check point 是擦脏位置

CrashSafe指MySQL服务器宕机重启后,能够保证:1、 所有已经提交的du事zhi务的数据仍然存在。2、所有没有提交的事务的数据自动回滚。

二、bin log

1、归档日志,最开始Mysql没有InnoDb存储引擎,自带MyIsam存储引擎,binlog所有引擎都能使用。因此只能做归档日志,没有crash-safe功能。
2、用来做定期全备
3、记录在磁盘中
4、大小不固定,可以追加,binlog文件写满后,会新建一个binlog文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值