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

面试被问:Mysql的InnoDB下RR是如何解决幻读问题的

这个问题应该分几方面来答
第一方面:什么是幻读

        Mysql事务在并发下会产生脏读、不可重复读、幻读问题。

赃读:一个事务可以读到另一个事务还没有提交的数据;

不可重复读:一个事务可以读到另一个事务修改并提交的数据;

幻读:一个事务两次相同的范围查找,之间另一个事务对这个范围insert了一条数据并提交,导致这两次事务查找的结果不一致。

第二方面:事务的隔离级别

读未提交:简称RU,可以读到其他事务还没有提交的数据。所以会有脏读、不可重复读、幻读问题。

读已提交:简称RC,解决了赃读的问题,但是还是有不可重复读、幻读问题。

可重复读:解决了不可重复读问题,当前读还解决了幻读问题。

串行化:事务串行执行,效率低。

第三方面:RR是如何解决的

        RR下的当前读(for update)会给范围查找的范围区间加上间隙锁或者临键锁,在这个区间加了间隙锁后就会阻塞其他事务对这个区间的数据插入,就解决了幻读问题

总结:

        RR解决幻读是通过当前读会加间隙锁,这样效率肯定会降低,如果我们的业务可以接受幻读和不可重复读的话,可以把隔离级别设置为RC,RC的当前读是不会加间隙锁的,RC只有记录锁,可以一定程度上提高我们程序的性能

相关文章:

  • win系统环境搭建(三)——Windows安装maven
  • 练习敲代码速度
  • 刷一下算法
  • 音视频转换器 Permute 3 for mac中文
  • Nacos注册中心
  • SWC 流程
  • Electron(v26.2.1)无法加载React Developer Tools(v4.28.0)
  • 深度学习的三维重建 论文+源码+解析+译文+批注 MVSNet系列最新顶刊总结 下载
  • Java工具类Hutool使用
  • Layui + Flask | 表单元素(组件篇)(06)
  • Qt(day2)
  • 浏览器报错内容:Provisional headers are shown
  • 437. 路径总和 III
  • 如何下载安装 WampServer 并结合 cpolar 内网穿透,轻松实现对本地服务的公网访问
  • 线性矩阵不等式(LMI)在控制理论中的应用
  • 【LeetCode每日一题合集】2023.9.11-2023.9.17(⭐反悔贪心拓扑排序Floyd)
  • ICS TRIPLEX T8310 自动化控制模块
  • 一百七十九、Linux——Linux报错No package epel-release available
  • Centos7.9 一键脚本部署 LibreNMS 网络监控系统
  • tensorflow基础
  • 今天是世界读书日,上海准备了哪些文化大餐?
  • 中国全国政协-越南祖国阵线中央暨边境省份组织第三次友好交流活动在南宁开幕
  • 世界读书日丨上图东馆开启残疾人无障碍文化服务
  • 马文化体验展商圈启动,环球马术冠军赛的能量不止在赛场
  • 美方因涉港问题对中国官员滥施非法单边制裁,外交部:强烈谴责,对等反制
  • 魔都眼|上海半马鸣枪:白金标运动员、“箱根之子”齐参赛