快照读

读取的是记录数据的可见版本(可能是过期的数据),不用加锁
实验测试快照读(select时为快照读)

由此也可以看出只要事务A还未提交,那么select出来的数据都是read view版本链中的数据,不会因为其它事务的提交或者未提交影响事务对同一张表的查询结果(遵循多版本并发控制规则)

当前读(update、insert、delete 当前读)

读取的是记录数据的最新版本,并且当前读返回的记录都会加上锁,保证其他事务不会再并发的修改这条记录
1.现在事务B中插入一条数据(注意此时A已经开启了一个事务)

2.再去事务查询如图,可以看到两次select的结果都没有事务B插入的id为5的记录,但是我们执行update却成功了(即可以验证update时读取当前最新的数据)

update的过程,首先会执行当前读,然后把返回的数据加锁,之后执行update。加锁是防止别的事务在这个时候对这条记录做什么,默认加的是排他锁,也就是你读都不可以,这样就可以保证数据不会出错了。但注意一点,就算你这里加了写锁,别的事务也还是能访问的,是不是很奇怪?数据库采取了一致性非锁定读,别的事务会去读取一个快照数据。
innodb默认隔离级别是RR, 是通过MVVC来实现了,读方式有两种,执行select的时候是快照读,其余是当前读,所以,mvvc不能根本上解决幻读的情况

mysql当前读与快照读相关推荐

  1. MySQL 锁与MVCC :数据库的锁、MVCC、当前读、快照读、锁算法、死锁

    文章目录 lock与latch 锁的类型 MVCC 一致性非锁定读(快照读) 一致性锁定读(当前读) 锁算法 死锁 锁升级 lock与latch 在了解数据库锁之前,首先就要区分开lock和latch ...

  2. 【MySql:当前读与快照读】

    当前读与快照读 MVCC (Multi-Version Concurrency Control) (基于锁的并发控制,Lock-Based Concurrency Control).MVCC最大的好处 ...

  3. 【MySQL】当前读、快照读、MVCC

    [MySQL]当前读.快照读.MVCC 当前读: select...lock in share mode (共享读锁) select...for update update , delete , in ...

  4. mysql 快照 理解_MySQL - 当前读和快照读

    当前读和快照读 InnoDB 给每一个事务生成一个唯一事务 ID 的方法称为生成快照,因此这种场景称为快照读. 但是对于更新数据不能使用快照读,因为更新数据时如果使用快照读会可能会覆盖其他事务的更改. ...

  5. MySQL学习(1)-当前读和快照读

    前言 在MySQL中读取数据有两种方式,一种是当前读,另一种是快照读,理解这两种读取数据的方式有助理解更多MySQL相关锁的知识. 当前读 当前读,顾名思义就是读取当前最新的数据,并且对读取的数据加锁 ...

  6. 锁模块之当前读和快照读

    锁模块之当前读和快照读 InnoDB可重复读隔离级别下是如何避免幻读的. 这里我们分为表象和内在 表象:快照读(非阻塞读)--伪MVCC (前提是在RR级别下) 内在:next-key 锁(行锁+ga ...

  7. 数据库-当前读与快照读

    当前读:insert update delete for update 快照读:不加锁的非阻塞读,select.目的是为了提高并发性能 在RC隔离级别下,当前读与快照读结果是一样的. 在RR隔离级别下 ...

  8. mysql 一致性读_mysql/mariadb知识点总结(27):一致性读,快照读

    在本博客中,"mysql"是一个系列文章,这些文章主要对mysql/mariadb的常用知识点进行了总结,每一篇博客总结的知识点有所不同,具体内容可参考mysql文章列表. mys ...

  9. MySQL数据库锁模块中的当前读和快照读

    文章目录 当前读 快照读 当前读 select - lock in share mode,select - for update update,delete,insert 即当前读是加了锁的增删改查操 ...

最新文章

  1. 创建一个storageevent事件_事件循环:微任务和宏任务
  2. Union-Find 并查集算法详解
  3. “现男友”来了!荣耀手机正式官宣
  4. java健康检查的作用,spring cloud分布式健康检查
  5. NOIP模拟 整数划分(数论,质因数分解,状压DP)
  6. 0基础lua学习(十八)C调用Lua----02Lua堆栈
  7. BZOJ4892:[TJOI2017]dna(hash)
  8. 现代通信原理2.3:为什么我们这么关注傅立叶变换?
  9. 远程服务器批量管理员权限,Win10系统下怎样实现批量远程桌面管理?Win10系统进行批量远程管理的方法...
  10. 矩阵标准型的系数是特征值吗_Jordan 标准型
  11. 流形上的预积分(下)
  12. Ajax-GET请求
  13. VirtulBox安装虚拟机(鼠标点击时)0x00000000指令引用的0x00000000内存该内存不能为written错误解决方案...
  14. sdn 华硕二级路由_360首款立式路由,还能检测各种设备上网详情,360路由V5S评测...
  15. 「WinddowInsets(二)」我们能用WindowInsets做什么?
  16. Python——组合数据类型的应用_1.英文句子中的词频统计
  17. python江红书后第六章上机答案_第六章上机题答案
  18. Python中的随机数
  19. ip5108 c语言程序,IP5109,IP5108,IP5206,IP5105 移动电源5合一芯片介绍.pdf
  20. excel乘法公式怎么输入_电气计算太慢?62套自动计算EXCEL表格,一键下载秒出结果...

热门文章

  1. bzoj2844:albus就是要第一个出场(线性基)
  2. Python导出当前环境依赖包及项目依赖包
  3. 使用jquery做一个简单的当月日历插件
  4. Android组件系列——Content Provider
  5. 腾讯云轻服务器yum安装报错的解决办法
  6. 【Unity3D】3D游戏学习
  7. 中文分词之11946组同义词
  8. 王者荣耀显示服务器爆满进不去,王者荣耀榜一二秀恩爱,服务器爆满进不去,榜四:他俩不是人...
  9. 软考高级系统架构设计师系列之:深入掌握软考高级系统架构设计师考试的知识分布点,轻松应对高级系统架构设计师考试
  10. 电磁场与电磁波(10)——电容与部分电容