Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql mvcc机制中如果高系统版本号update后,低系统版本号update是怎么处理?

mysql mvcc机制中如果高系统版本号update后,低系统版本号update是怎么处理?

提问于 2020-07-09 13:46:18
回答 2关注 0查看 768

当mysql事务隔离级别为 提交读 与 可重复读 时,按照MVCC机制说明,update一条数据会将旧数据设置删除版本,新增一条数据。再并发处理时,如果后开启的事务先update,那先开启的再后开启事务已提交的情况下,再去update会出现什么状况?

以上问题的前提假设:

提交完事务不会立即清除快照,因为还有之前的事务未提交,可能还会查询

已排除猜想:

重新生成一个事务ID?如果是这样那之前的查询与之后的查询就不一致了

再请教个问题:

mvcc机制怎么保证事务已完成?如果之前事务未完成,后来的事务版本号就会比未提交版本号要大,这样岂不是读到未提交的数据了?

回答 2

Richel

发布于 2020-07-10 08:10:09

您好, 您这个是update 更新同一条数据吗?比如 t1 时刻 更新 id =1 列 为 id=2 时 t2事务更新 id= 1列为 id=3 的情况吗

用户7802375

发布于 2021-03-12 11:24:57

同问,为什么不能只是更新比自己事务id小的数据

和开发者交流更多问题细节吧,去 写回答
相关文章
MySQL Update语句是怎么执行的?
最近在极客时间看丁奇大佬的《MySQL45讲》,真心觉得讲的不错,把其中获得的一些MySQL方向的经验整理整理分享给大家,有兴趣同学可以购买相关课程进行学习。
AsiaYe
2020/05/07
4.7K0
事务隔离级别中的可重复读能防幻读吗?
前言 每次谈到数据库的事务隔离级别,大家一定会看到这张表. 其中,可重复读这个隔离级别,有效地防止了脏读和不可重复读,但仍然可能发生幻读,可能发生幻读就表示可重复读这个隔离级别防不住幻读吗? 我不管从
码农阿宇
2019/09/17
3.2K1
事务隔离级别中的可重复读能防幻读吗?
详解MySQL并发控制及事务原理
在如今互联网业务中使用范围最广的数据库无疑还是关系型数据库MySQL,之所以用"还是"这个词,是因为最近几年国内数据库领域也取得了一些长足进步,例如以TIDB、OceanBase等为代表的分布式数据库,但它们暂时还没有形成绝对的覆盖面,所以现阶段还得继续学习MySQL数据库以应对工作中遇到的一些问题,以及面试过程中关于数据库部分的考察。
用户5927304
2020/11/03
7100
详解MySQL并发控制及事务原理
搞懂MySQL的锁、MVCC、事务隔离级别,看这篇就够了!
在如今互联网业务中使用范围最广的数据库无疑还是关系型数据库MySQL,之所以用"还是"这个词,是因为最近几年国内数据库领域也取得了一些长足进步,例如以TIDB、OceanBase等为代表的分布式数据库,但它们暂时还没有形成绝对的覆盖面,所以现阶段还得继续学习MySQL数据库以应对工作中遇到的一些问题,以及面试过程中关于数据库部分的考察。
用户5927304
2021/09/14
2.2K0
搞懂MySQL的锁、MVCC、事务隔离级别,看这篇就够了!
MySQL启动后版本号居然不对?
使用xtrabackup对主库进行备份,在从节点主机上进行恢复,并将还原后的实例部署为主库的从节点。在启动介质与主库版本一致的情况下,启动主从同步后,日志出现如下错误:
俊才
2022/11/11
1.3K0
MySQL启动后版本号居然不对?
【转】Innodb中的事务隔离级别和锁的关系一次封锁or两段锁?事务中的加锁方式参考资料
因为有大量的并发访问,为了预防死锁,一般应用中推荐使用一次封锁法,就是在方法的开始阶段,已经预先知道会用到哪些数据,然后全部锁住,在方法运行之后,再全部解锁。这种方式可以有效的避免循环死锁,但在数据库中却不适用,因为在事务开始阶段,数据库并不知道会用到哪些数据。
阿杜
2018/08/06
5860
【转】Innodb中的事务隔离级别和锁的关系一次封锁or两段锁?事务中的加锁方式参考资料
图解mysql事务实现原理
什么是事务? 事务是一组原子性的sql语句,或者说是一个独立的工作单元。事务有四个特性,原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)。今天想跟大家一起研究下事务内部到底是怎么实现的。
用户4283147
2022/10/27
5590
图解mysql事务实现原理
MySQL-1
这里有第一层处理,每个客户端的连接都会在服务器进程中拥有一个线程,连接的查询在这个线程中单独进行。
一滴水的眼泪
2020/09/21
3870
MySQL-1
mysql事务
事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行 。事务是一个不可分割的工作逻辑单元事务必须具备以下四个属性,简称 ACID 属性:
CodingCode
2021/09/23
1K0
mysql事务
图文并茂讲解Mysql事务实现原理
相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题: 事务想要做到什么效果?
Bug开发工程师
2019/05/24
13.8K1
图文并茂讲解Mysql事务实现原理
MySQL锁机制
SS可以兼容的,XS、SX、XX之间是互斥的,即读锁之间可以共享,读写和写写之间是不兼容的
用户9645905
2023/04/08
7350
MySQL锁机制
Windows系统查看CUDA版本号
在按住Win键的情况下,按P键,呼唤出搜索框。 在搜索框中输入control panel,如下图所示:
潇洒坤
2018/10/09
11.7K0
Windows系统查看CUDA版本号
Windows系统查看CUDA版本号
在按住Win键的情况下,按R键,呼唤运行栏。 在运行框中输入control,如下图所示:
全栈程序员站长
2022/09/03
1.9K0
Windows系统查看CUDA版本号
重新学习MySQL数据库9:Innodb中的事务隔离级别和锁的关系
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
Java技术江湖
2019/11/29
4960
MySQL的MVVC多版本并发控制机制
MVCC全称是:Multiversion concurrency control,多版本并发控制,提供并发访问数据库时,对事务内读取的到的内存做处理,用来避免写操作堵塞读操作的并发问题。
Java技术债务
2022/08/09
1.1K0
查询mysql版本号命令_怎么看自己mysql是哪个版本
+————+ | version() | +————+ | 5.7.23-log | +————+ 1 row in set (0.12 sec)
全栈程序员站长
2022/11/08
3.1K0
浅谈MVCC
可以视为行级锁的一个变种。它在很多情况下都避免了加锁操作,因此开销更低。不仅是 Mysql,包括 Oracle、PostgreSQL 等其他数据库都实现了各自的 MVCC,实现机制没有统一标准。MVCC 是 InnoDB 存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取最新的数据行,要求很低,无需使用 MVCC。可串行化隔离级别需要对所有读取的行都加锁,单纯使用 MVCC 无法实现。
架构狂人
2023/08/16
3070
浅谈MVCC
mysql update 报错
You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.    0.000 sec
句小芒
2022/12/29
2.5K0
MySQL(二)|深入理解MySQL的四种隔离级别及加锁实现原理
注:内容有点干,但希望你可以耐心地看完。回头我写一篇实操的文章帮助理解。 开发工作中我们会使用到事务,那你们知道事务又分哪几种吗? 以及不同事务隔离的加锁实现原理是什么? 一、首先什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所有步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消事务开始时的所有操作。 二、事
黄小怪
2018/05/21
2.7K1
深入理解 MySQL 事务:隔离级别、ACID 特性及其实现原理
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。事务通常由高级数据库操作语言或编程语言(如 SQL,C++ 或 Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全部操作组成。
CG国斌
2022/05/06
5280
深入理解 MySQL 事务:隔离级别、ACID 特性及其实现原理

相似问题

win2008系统远程桌面提示update.exe-系统错误?

1366

mysql 使用insert on duplicate key update 死锁,怎么解决?

029

重装系统后内存变少是怎么回事?

2605

推荐系统是怎么搭建的?

026

我的是liunx系统 怎么远程?

2380
相关问答用户
平安资管 | 架构师擅长4个领域
擅长3个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档