14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读

一致性读意味着 InnoDB 使用多版本来实现一个查询数据库的快照在某个时间点。

查看看到的事务做出的改变被提交了在那个时间点前, 随后没有改变或者没有提交的事务。

这个例外是这个规则是查询看到的改变通过早期的语句在相同的事务里,

这个列外导致下面的异常:

如果事务隔离级别是REPEATABLE READ (the default level),所有一致性读在相同的事务 读取通过第一次这样的读在事务里创建的快

照。
你也可以得到一个更新鲜的快照对于你的查询通过提交当前的事务然后执行新的查询 在 READ COMMITTED isolation level, 每个一致性读在一个事务里设置和读它自己的新鲜的快照 一致性读是默认的模式 InnoDB 处理SELECT 语句在 READ COMMITTED and REPEATABLE READ isolation levels. 一个一致性读不设置任何锁在它访问的表上, 因此其他会话可以同时的修改那些表 假设你运行模拟的事务隔离(RR) 当你执行一个一致性读(即,一个普通的SELECT 语句) InnoDB 给你的事务一个时间点 根据这个你看的查看看到的数据库 如果其他的事务删除一个记录和提交在你的时间点被分配后, 你不会看到已经被删除,插入和修改的记录 注意: 数据库的快照状态应用于SELECT 语句在一个事务里, 未必对于DML语句。 如果你插入或者修改一些记录然后提交那个事务,一个DELETE 或者UPDATE语句从另外的并发RR事务被执行可能影响 那些提交的行,即使session 不能查看他们。 你可以提前你的时间点通过提交你的事务,然后做另外一个 SELECT or START TRANSACTION WITH CONSISTENT SNAPSHOT. 在下面的例子,Session A 看到SESSION B插入的记录只有当B已经提交了插入,而且A也提交了, 如果你想看到数据库的最新状态,使用RC隔离级别或者锁定读 在READ COMMITTED isolation level下,每个一致性读使用一个事务设置和读取它自己最新鲜的快照。 一致性读 不支持某些DDL语句: 1.一致性读不支持DROP table,因此MySQL 不能使用一个表已经被删除了 2.

最新文章

  1. Hibernate操作指南-实体之间的关联关系(基于注解)
  2. Web Performance Test : 为Request的Post参数名添加XPath支持
  3. java中对象的初始化过程
  4. spring定时器设置(转自:http://my.oschina.net/LvSantorini/blog/520049)
  5. PostgreSQL simple select(group by and insert into ...select)
  6. 分布式消息队列kafka系列介绍 — 核心API介绍及实例
  7. 【BZOJ1006】【HNOI2008】神奇的国度
  8. [LeetCode] 134. Gas Station 解题思路
  9. shell 脚本之if、for、while语句
  10. js实现二级联动下拉列表菜单
  11. css中auto的用法
  12. 201521123036 《Java程序设计》第1周学习总结
  13. Dijkstra堆优化学习
  14. Sublime codeIntel 配置支持php自动提示
  15. XML跨平台,你懂的
  16. 数据包接收系列 — IP协议处理流程(二)
  17. 压力测试工具ab - Apache HTTP server benchmarking tool
  18. vue 在safari动态多级面包屑导航样式不刷新的bug
  19. ZoomIt: 非PPT演示必备辅助软件
  20. Oracle索引失效原因及解决方法

热门文章

  1. SqlLite 简明教程
  2. [转] Understanding Twitter Bootstrap 3
  3. 关于Sublime Text3 pyV8无法加载的问题
  4. Unity3D 创建一个简单的2D游戏
  5. c读mysql产生乱码问题
  6. ASP.NET Excel数据导出数据库
  7. Java Swing 使用总结(转载)
  8. hdoj1847(博弈论)
  9. 【BZOJ3673】【可持久化并查集】可持久化并查集 by zky
  10. 【技术宅6】把一个无限级分类循环成tree结构