pull/1/head
595208882@qq.com 3 years ago
parent 72563484e4
commit 35097f8159

@ -2455,6 +2455,8 @@ MySQL 每执行一条 DML 语句,先将记录写入 redo log buffer后续
**WAL(Write-Ahead Logging)** **WAL(Write-Ahead Logging)**
WALWrite-Ahead Logging预写式日志是一种数据安全写入机制即**先写日志,再写磁盘**,这样保证数据的安全性。先在内存中提交事务,然后写日志(在InnoDB中就是Redo Log日志是为了防止宕机导致内存数据丢失),然后再后台任务中把内存中的数据异步刷到磁盘。
**作用** **作用**
@ -2484,17 +2486,9 @@ redo log 实际的触发 fsync 操作写盘包含以下几个场景:
## 回滚日志(undo log) ## 回滚日志(undo log)
undo log记录的是数据修改之前的数据。主要用于**回滚,**MySQL数据库事务的**原子性**就是通过 undo log实现的。 回滚日志undo log主要存储的是数据的逻辑变化日志用于回滚操作。比如我们要 insert 一条数据,那么 undo log 就会生成一条对应的 delete 日志。所以当需要回滚时只需要利用undo log 就可以恢复都修改前的数据。
undo log主要存储的是数据的逻辑变化日志比如我们要 insert 一条数据,那么 undo log 就会生成一条对应的 delete 日志。所以当需要回滚时只需要利用undo log 就可以恢复都修改前的数据。
undo log另一个作用是用来实现**多版本并发控制 MVCC。**
undo记录中包含了记录更改前的镜像如果更改数据的事务未提交对于隔离级别大于等于 read commit的事务而言不应该返回更改后的数据而应该返回更改前的数据。
@ -2505,8 +2499,6 @@ undo记录中包含了记录更改前的镜像如果更改数据的事务未
# 数据切分 # 数据切分
## 水平切分 ## 水平切分

Loading…
Cancel
Save