在MySQL读取数据时可以按照是否使用一致性非锁定读来分为快照读和当前读:
1、快照读:MySQL使用MVCC (Multiversion Concurrency Control)机制来保证被读取到数据的一致性,读取数据时不需要对数据进行加锁,且快照读不会被其他事物阻塞。
2、当前读:也称锁定读(locking read),通过对读取到的数据(索引记录)加锁来保证数据一致性,当前读会对所有扫描到的索引记录进行加锁,无论该记录是否满足WHERE条件都会被加锁。

在读提交和可重复读两种事务隔离级别下,普通的SELECT操作使用“快照读”,不会对数据加锁,也不会被事务阻塞。

在读提交和可重复读两种事务隔离级别下,使用“当前读”的操作包括:
1、SELECT LOCK IN SHARE MODE
2、SELECT FOR UPDATE
3、DELETE\UPDATE\INSERT INTO\REPLACE INTO

在可重复读事务隔离级别下,“当前读”读取到的时数据库最新的数据,而“快照读”读取到的数据是事务中第一次建立ReadView时的数据+事务中修改的数据。

转载于:https://www.cnblogs.com/gaogao67/p/10410888.html

MySQL Transaction--快照读和当前读相关推荐

  1. mysql 快照读 幻读,InnoDB的MVCC如何解决不可重复读和快照读的幻读,当前读用next-key解决幻读...

    InnoDB默认的隔离级别是RR(可重复读),可以解决脏读和不可重复读,只解决了快照读情况下的幻读问题,当前读情况下解决幻读问题得靠next-key锁. mysql如何实现避免幻读: 在快照读读情况下 ...

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

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

  3. MySQL怎么运行的系列(十一)快照读、锁定读、半一致性读 和 加锁语句分析

    本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql怎么运 ...

  4. mysql快照读取_MySQL 快照读和当前读

    在MySQL读取数据时可以按照是否使用一致性非锁定读来分为快照读和当前读: 1.快照读:MySQL使用MVCC (Multiversion Concurrency Control)机制来保证被读取到数 ...

  5. mysql rr 更新失败_RR 级别下 update 操作的是快照读还是当前读?

    我们知道在 RR 级别下,重复的 select 操作,读取的值都会是一致的.即便在两次 select 操作的中间,有一个事务 B 修改了值,但是在事务 A 中 select 读取的值还是一致的. 那么 ...

  6. MVCC和快照读丶当前读

    文章目录 MVCC的实现原理 版本链 ReadView MVCC实现不同隔离级别 Read Committed隔离级别下MVCC工作原理 Repeatable Read隔离级别下MVCC工作原理 快照 ...

  7. mysql可重复读和幻读的理解

    mysql可重复读和幻读的理解 可重复读和幻读的定义 最后总结 参考资料 很多教程和书籍对mysql的可重复读和幻读的解释都比较含糊,本文结合原理和其他的考证,深入分析下. 这里讨论的引擎是常用的In ...

  8. MySQL 到底是怎么解决幻读的?

    作者:LastSun https://www.cnblogs.com/wdy1184/p/10655180.html 一.什么是幻读 在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读.而 ...

  9. MySQL探秘(六):InnoDB一致性非锁定读(隔离性)

    一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(MVVC)读取当前数据库中行数据的方式.如果读取的行正在执行DELETE或UPDATE操作 ...

最新文章

  1. python 服务端渲染_客户端渲染和服务器渲染的区别
  2. java stream 多个filter_恕我直言你可能真的不会java第3篇:Stream的Filter与谓词逻辑...
  3. python string.format()_Python string.format()百分比,不取整
  4. c51编程语言基础习题,《单片机基础》练习题及答案
  5. python123第五章_python 3.5学习笔记(第五章)
  6. ORA-16009: 远程归档日志目标必须为备用数据库
  7. paip.软件版本完善计划VC423
  8. ajax每次只加载3张图片,使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题(推荐)...
  9. python情感词提取_Python 文本挖掘:使用情感词典进行情感分析(算法及程序设计)...
  10. CSS 字体 font-family属性
  11. 电脑桌面计算机被隐藏怎么恢复,电脑隐藏图标怎么恢复_电脑隐藏的怎么恢复...
  12. 中俄巡护员聚东北虎栖息地切磋巡护技艺
  13. RK3066开发板的唯一码UUID
  14. Linux网络——部署yum仓库
  15. 在线生成安卓签名证书
  16. php文字验证码插件,PHP中文汉字验证码
  17. 微信小程序之发送通知消息(通过openid推送消息给用户)
  18. RK3588平台开发系列讲解(SPI篇)SPI内核配置及驱动使用
  19. Redhat6.5离线配置Zabbix,含自定义Zabbix监控项
  20. MPLS 高级应用 sham-link

热门文章

  1. 压缩视频 html5播放,将HTML5视频呈现为Canvas正在压缩图像
  2. vb.net 正则 替换 第n个_Python中正则表达式模块详解
  3. linux 进程装入 物理内存 页表,linux进程空间一步步探究.doc
  4. linux卸载桌面Ubuntu,Ubuntu安装卸载KDE桌面之折腾记
  5. 每天一个linux命令(31): /etc/group文件详解
  6. 一次违反常规的Java大厂面试经历,你还看不懂吗?
  7. linux文件属性 -rwxr-xrw,Linux文件属性
  8. java的sdk在哪个文件夹_我的计算机中的Java SDK文件夹在哪里? Ubuntu 12.04
  9. 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)
  10. cms php vue 开源_骑士CMS文件包含+getshell