一表一图理解MySQL四种事务隔离性

88 阅读1分钟

 首先,理解MySQL的三种日志:

redo log:

WAL技术:Write-Ahead Logging,先写日志,再写磁盘。当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log(粉板)里面,并更新内存,这个时候更新就算完成了。同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做

binlog

Server层的归档日志

redo log 是物理日志,记录的是“在某个数据页上做了什么修改”, 循环写,空间固定会用完binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。可以追加写入,binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。

undo log

实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值

​编辑