【Mysql-5】innodb引擎之mvcc,事务四大特性的原理

  1. 了解innodb的逻辑存储结构:表空间,段,区,页,行。
  2. 了解innodb的架构:内存与磁盘。其中内存主要了解缓冲池与改变缓冲区。缓冲池中事务只有提交,缓冲池才会将脏页与磁盘交换。改变缓冲池本着能不从磁盘读数据就不从磁盘读数据的原则,将对缓冲池不存在的数据的操作直接保存对应数据,然后提交事务时交换。
  3. 了解innodb的后台线程:包含一个主线程与10个io线程,主线程主要负责刷新脏页到磁盘。
  4. 了解事务的定义,知道事务的acid四大特性
  5. 知道事务在提交之前都是在对缓冲区数据进行操作
  6. 知道事务的四大特性是怎么被保证的:持久性–通过redo log保证 脏页刷新出问题则会将数据恢复再做一次。原子性–通过undo log保证 任何操作的事务都是整体,回滚会直接回滚到事务发生之前(是以事务为原子性而不是一条sql语句)。一致性–上述两个文件组合就保证了缓冲区与磁盘数据一定是一致的。
  7. 知道什么是当前读:一条select语句加锁(例如:lock in share mode , 或者是 for update)就是当前读,由于加锁,此时不会有任何其它人来修改数据,系统默认读取最新数据(最新的readview),就叫做当前读。
  8. 知道什么是快照读:使用普通select语句就是快照读,实际上快照读的结果由readview文件undo log版本链来决定,不同隔离模式会有不同的产生机制。默认情况下innnodb是RR隔离,该事务首次普通select才会产生readview文件。而RC隔离则是每次普通select都会产生readview文件。
  9. 知道readview文件有个匹配规则会去undo log版本链当中查数据。知道readview 的一些参数。比如m_ids(当前活跃事务id)
  10. 了解mvcc多版本并发控制究竟是如何实现的:实际上就是readview以及undo log版本链,隐藏字段配合完成多并发数据的隔离性
  11. 所谓隔离模式,其实也就是由于readview不同导致读取数据不同,隔离的力度不同。
  12. readview的本质实际上还是找到最后完成提交的版本。(这个时候都是在缓冲区里面)
  13. 扩展 truncate tablename 是ddl语句不可回滚 相当于drop table再create table 。 delete 是dml 是可回滚的(通过binlog)。
  14. 幻读文章:https://zhuanlan.zhihu.com/p/103580034
  15. for update 与 lock in share mode

在这里插入图片描述

逻辑存储结构

在这里插入图片描述

在这里插入图片描述

架构

由内存与磁盘两大部分组成
在这里插入图片描述

内存部分

主要是缓冲区
缓冲池:
在这里插入图片描述
在这里插入图片描述

磁盘部分

在这里插入图片描述

在这里插入图片描述

后台线程

在这里插入图片描述

事务原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
redo log 实现持久性
所谓持久性就是在风险发生时能够进行恢复操作
在这里插入图片描述
在这里插入图片描述
undo log 保证原子性
在这里插入图片描述

MVCC

在这里插入图片描述
在这里插入图片描述
根据数据库的隔离级别,使用select语句会产生不同的读法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mvcc实现原理 undo log版本链

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mvcc之readview

readview决定了快照读所产生的数据
readview 去访问版本链
当前活跃的事务是指未提交的事务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里的版本号就是上面的DB_TRIX_ID(也就是trix_id).

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值