MySQL基础7——MVCC,redo,undo
2021/9/21 19:12:03
本文主要是介绍MySQL基础7——MVCC,redo,undo,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
多版本并发控制;用来实现一致性的非锁定读;非锁定读是指不需要等待访问的行上X锁的释放;
在 read committed 和 repeatable read下,innodb使用MVCC;然后对于快照数据的定义不同;
在 read committed 隔离级别下,对于快照数据总是读取被锁定行的最新一份快照数据;而在
repeatable read 隔离级别下,对于快照数据总是读取事务开始时的行数据版本;
为什么读取快照数据不需要上锁?
因为没有事务需要对历史的数据进行修改操作;
redo
redo 日志用来实现事务的持久性;内存中包含 redo log buffer,磁盘中包含 redo log file;
当事务提交时,必须先将该事务的所有日志写入到重做日志文件进行持久化,待事务的commit操
作完成才完成了事务的提交;
redo log 顺序写,记录的是对每个页的修改(页、页偏移量、以及修改的内容);在数据库运行
时不需要对 redo log 的文件进行读取操作;只有发生宕机的时候,才会拿redo log进行恢复;
undo
undo 日志用来帮助事务回滚以及MVCC的功能;存储在共享表空间中;undo 是逻辑日志,回滚
时将数据库逻辑地恢复到原来的样子,根据 undo log 的记录,做之前的逆运算;比如事务中有
insert 操作,那么执行 delete 操作;对于 update 操作执行相反的 update 操作;
同时 undo 日志记录行的版本信息,用于处理 MVCC 功能;
这篇关于MySQL基础7——MVCC,redo,undo的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程