版本链

简介: 【8月更文挑战第5天】

和隔离级别密切相关的概念是脏读、幻读和不可重复读 这三个读异常。

  • 脏读:读到了别的事务还没有提交的数据。之所以叫做脏读,就是因为未提交数据可能会被回滚掉。
  • 不可重复读:在一个事务执行过程中,对同一行数据读到的结果不同
  • 幻读:事务执行过程中,别的事务插入了新的数据并且提交了,然后事务在后续步骤里读到了这个新的数据。

用一个表用来描述隔离级别和三种读异常的关系:

理论上,可重复读是没有解决幻读的,但是因为MySQL因为使用了临键锁,因此它的可重复读隔离级别已经解决了幻读问题。

此外还有一个相似的概念:快照读和当前读。
快照读就是在事务开始的时候创建了一个数据的快照,在整个事务过程中都读这个快照;
当前读,则是每次都去读最新数据。

MySQL在可重复读这个隔离级别下,查询的执行效果和快照读非常接近。

为了实现MVCC,InnoDB引擎给每一行都加了两个额外的字段trx_idroll_ptr

  • trx_id:事务ID,也叫做事务版本号。MVCC里面的V指的是这个数字,每一个事务在开始的时候就会获得一个ID,然后这个事务内操作的行的事务ID,都会被修改为这个事务的ID
  • roll_ptr:回滚指针,InnoDB通过roll_ptr把每一行的历史版本串联在一起。

实际上,InnoDB引擎还隐式地插入了另外一个列row_id,如果你没有设置任何主键,那么这个列就会被当作主键来使用。但是它其实和MVCC没太大关系,所以不需要关注。

目录
相关文章
|
存储 监控 Java
一篇文章带你搞懂SkyWalking调用链追踪框架
介绍了Skywalking的作用,安装方法,架构设计等等
一篇文章带你搞懂SkyWalking调用链追踪框架
|
8月前
|
中间件 API
中间件终止链
【5月更文挑战第17天】
42 1
|
8月前
|
Devops
以己度人,构建理解链
以己度人,构建理解链
52 0
|
存储 算法 安全
OP链DAPP合约项目系统开发|详情规则|方案模式
所谓的共识算法就是不同的网络节点为达成一致操作而使用的某种算法,由计算结果来决定操作。
|
存储 安全 区块链
OP链ARBT项目系统开发指南与详情(智能合约)
尽管使用区块链技术所建立的系统本身是诚实可信的,但这并不意味着来自系统以外的输入信息就是诚实的
|
安全 区块链
TRX链/BSC链/ARB链/Matic马蹄链公链智能合约系统开发指南需求丨步骤逻辑丨规则方案丨案例开发丨项目程序丨源码说明
Chain selection and environment construction: Select suitable public chains as development environments, such as TRX chains, BSC chains, ARB chains, or Matic horseshoe chains. Establish a corresponding development environment, including node deployment, development tools, and testing network.
|
安全 JavaScript 前端开发
TRON波场链USDT合约开发源码规则部署
TRON波场链USDT合约开发源码规则部署
|
区块链
升级bitcoin0.18后对应接口废弃问题解决方案
升级bitcoin0.18后对应接口废弃问题解决方案
117 0
|
Linux 开发工具 Docker
比原链(Bytom)节点接入文档
系统要求 我们建议选择主要的几家云主机平台的VPS服务,运行比原链节点对算力没有要求,但是请配置尽可能大的磁盘空间以适应区块链数据未来增长的需要。 节点服务器最小配置: 操作系统: Windows/Linux/Docker CPU: 2核 内存: 2G 硬盘: 40G 网络: 独立IP,2MB带宽 防火墙: 开启46657端口 Ubuntu接入文档 1 节点服务器部署 1.
1462 0

热门文章

最新文章