MySQL并发问题区别-MVCC如何解决的

脏读

事务a,事务b,b读到了a刚修改未提交的数据

不可重复读

针对同一行记录,两次读到的结果不一致

(范围是一行)

幻读

范围比不可重复读大很多,是表的范围,事务a第一次查的时候不存在,后面事务b插入提交,事务a第二次查的时候又发现多了数据,仿佛存在幻影

脏读是什么措施都没有,MVCC解决的主要是RC和RR

RC是读已提交,每次查询新建一个ReadView,通过MVCC规则确定访问数据的历史版本

RR是可重复读,只有事务第一次Select才会新建ReadView,后续查询除非是本事务修改或者显式当前读(Select * From 。。for Update/delete/insert),否则查询结果直接复用前面的ReadView,直接返回旧的读取结果。

MVCC本质上是无锁实现,乐观锁思想,提高了并发能力,比锁的效率要高很多

相关推荐
郑州光合科技余经理1 天前
同城系统海外版:一站式多语种O2O系统源码
java·开发语言·git·mysql·uni-app·go·phpstorm
爱吃面条的猿1 天前
MySQL 随机日期/时间生成
数据库·mysql
2501_939909051 天前
Mysql 主从复制、读写分离
数据库·mysql
k***82511 天前
图文详述:MySQL的下载、安装、配置、使用
android·mysql·adb
wstcl1 天前
通过EF Core将Sql server数据表移植到MySql
数据库·mysql·sql server·efcore
故渊ZY1 天前
从入门到精通:MySQL 核心技术与业务落地实践
mysql
计算机毕设匠心工作室1 天前
【python大数据毕设实战】全面皮肤病症状数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
qq_12498707531 天前
基于SpringBoot+vue的小黄蜂外卖平台(源码+论文+部署+安装)
java·开发语言·vue.js·spring boot·后端·mysql·毕业设计
Dxy12393102161 天前
MySQL连表更新
数据库·mysql
对 酒 当 歌 人 生 几 何1 天前
Mysql多表连接
数据库·sql·mysql