undo log,当前读和快照读,redo log----与mvcc

undo log,当前读和快照读,redo log

2019.04.19 07:08:17字数 272阅读 665

Undo log

是什么

在操作之前,把需要操作的数据备份到undo log中,若查询数据就有undo log +不在undo log的数据(事务未提交之前)

作用

当rollback将数据恢复到原始之前类似于备份表,为了保证事务的原子性

Innodb使用undo log实现mvcc,从undo log读取旧版本的数据

例子

 

当前读和快照读

简介

快照读

读取的是快照版本:undo +未修改的表的数据

普通的select

当前读

读取的是最新版本,通过锁机制来保证读取的数据无法被其他事务修改

如insert,delete,update, select .... lock in share mode,select .... for update等

Redo log

是什么

在操作完一条语句后,将最新的数据备份到redo log中

作用

为了事务的持久化,当执行完commit,若redo log写完了,则事务提交成功,将redo log写入表中是开启异步的线程执行的,若提交后突然断电,mysql可以用redo log中恢复数据

例子:

 
 
0人点赞
 
sql

 

 

posted on   枫飞飞  阅读(449)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2019-09-03 go语言每个工程是不是都要单独设置GOPATH?
2019-09-03 go mod开发模式设置
2019-09-03 在 Ubuntu 开启 GO 程序编译之旅
2018-09-03 MySQL给一个字段递增赋值
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示