Mysql是如何将数据库恢复到半个月内的任意一秒的状态的?

一. mysql的日志

在mysql中会有很多日志,mysql利用WAL技术,"write ahead logging"就是先写日志在写入磁盘。这样的好处当mysql负载过高的时候避免频繁的IO操作占用过多资源,导致mysql性能下降。WAL技术可以在mysql空闲的时候再将日志中的数据写入磁盘。

接下来我们先来了解一下在mysql中的两个重要的日志redo log和binlog。

1.1 mysql底层架构

我们知道mysql分为server层和存储引擎层。

server层是我们常见的连接器,分析器,优化器,执行器。 我画了一个图方便理解

这里搬出来mysql45讲里面的非常好的又形象的图:

存储引擎层里会有很多存储引擎,比如MYISAM,INNODB,MEMORY等,这些存储引擎会提供一个读写的接口,然后我们在server层的执行器可以通过调用这个接口对数据进行读写操作。

1.2 redo log 重做日志

redo log叫做“重做日志”。是一种物理日志。是INNODB引擎特有的日志,拥有crash safe的能力,Mysql由于意外重启,保障之前提交的记录不会丢失。redo log是有大小限制的最大不能超过4GB。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值