当前位置: 首页 > article >正文

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本质上是无锁实现,乐观锁思想,提高了并发能力,比锁的效率要高很多


http://www.kler.cn/a/457259.html

相关文章:

  • 曾仕强解读《易经》
  • Ubuntu 20.04.1 LTS搭建nginx + php7.4运行环境
  • ThinkPHP 8高效构建Web应用-第一个简单的MVC应用示例
  • px、em、rem,vw区别介绍
  • Java开发工具-Jar命令
  • Prompt工程--AI开发--可置顶粘贴小工具
  • Linux 下 Mamba 环境安装踩坑问题汇总(重置版)
  • 【前端】Vue3 父传子 Dialog 显示问题:解决方案与最佳实践
  • 狼人杀.转载
  • 神经网络初学总结(一)
  • 国密算法SM3的GmSSL代码Android实现Demo
  • 【Leecode】Leecode刷题之路第93天之复原IP地址
  • 使用Python实现智能交通信号控制系统
  • 深度学习笔记(12)——深度学习概论
  • CDN如何抵御DDoS攻击
  • 如何在 Ubuntu 22.04 上使用 systemctl 管理 systemd 服务教程
  • Pytorch | 利用MIG针对CIFAR10上的ResNet分类器进行对抗攻击
  • python lambda函数用法
  • Android `android.graphics.drawable` 包深度解析:架构与设计模式
  • zentao ubuntu上安装
  • EMNLP'24 最佳论文解读 | 大语言模型的预训练数据检测:基于散度的校准方法
  • 探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
  • 从零开始采用命令行创建uniapp vue3 ts springboot项目
  • 《PHP Switch》
  • DeepSeek-VL2部署指南
  • Linux总结之CentOS Stream 9安装mysql8.0实操安装成功记录